Teaching cPython and Web Development in the Browser
Teaching Jinja in the Browser

Teaching Jinja in the Browser

Jinja provides secure access to Python on the server.

I am offering 2 free classes on Jinja (Friday 28th 6PM UTC,) and on teaching Jinja (Sunday 30th  6PM UTC. ).   No need to install anything.  All work will be done in the  browser.  

This is in preparation for my talk at DjangoCon Europe "Teaching Python and Jinja in the browser. "

The classes will be run on the Forest Wiki Discord Server.   If those times are not convenient for you, please let me know and I could schedule another class. 

I can probably handle 10 students in a class.  I expect to offer 2  classes.   Please join the Discord server, and in the appropriate channel, please express your interest. That way I will have an accurate count of interest.  We will see how many people sign up.  I may offer another class as well.  I hope to get  20-30, maybe  50 students.  Hopefully not hundreds.  And I am particularly interested in teaching teachers. 

You can read more below. 

The Forest Wiki is great for teaching Python in the Browser, and web development skills, but occasionally there is a need to write Python programs on the server.  This is usually for interpolation of HTML and JSON templates.  The problem is that when you give your students access to  Python on the server, they can do anything, including but not limited to destroying all of the data and reading files on the server.  Docker provides some security, Jinja sandboxes provide more security.  I do not think this would deter my hacker friends on Tor, but it should provide a good barrier to beginner students.  Hopefully turtle graphics will appeal to them more than Ninja Turtle hacking. 

 Jinja is a Python templating server.  You define your HTML, JSON and add a little Python to interpolate some values into the returned text file.  Jinja  provides some security, by keeping every student in their own sandbox.  Here is an exmaple of Jinja being used to customize an HTML file. 

<title>{% block title %}{% endblock %}</title>
{% for user in users %}
  <li><a href="{{ user.url }}">{{ user.username }}</a></li>
{% endfor %}