I created a test application (called jonas) to check this out. Its job is simply to display text, formatted by CSS and display a button, which when clicked, calls a javascript function to display a message.
I did find it easier to read the tutorial in pdf format so I referred to django manual
We put the html in a file jonas/templates/jonas/index.html
We put css and js in jonas/static/jonas/style.css and jonas/static/jonas/mess.js
We put a background image in jonas/static/jonas/images/mybgc.jpg
We create a view in jonas/views.py to display jonas/index.html.
You have to add your app name into the INSTALLED_APPS setting and Django then searches for index.html, style.css and mess.js in the appropriate places and displays the appropriate page including css and js.
jonas/views.py
jonas/templates/jonas/index.html
jonas/static/jonas/mess.js
jonas/static/jonas/style.css
Here is the result:
To make the pages visible from other local devices I used runserver 0:8000 and added the setting ALLOWED HOSTS['*']. I could now access django from other devices on my network to my WSL IP address.
Databases
Using MariaDB
For the tutorial I used the sqlite database which comes in the django package. I use MariaDB on an RPI for my databases and some care was required to allow me to use them.
Firstly I needed to point django at my database server:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'tutorial',
'USER': 'djangouser',
'PASSWORD': '######',
'HOST': '192.168.0.##',
'PORT': '3306',
},
We have to create the tutorial database ourselves on the database server. I used a digitalocean tutorial to help me. Briefly you:
signon to mysql on RPI
create a database called tutorial
create a user djangouser@192.168.0.#
grant all privileges to the user
To check that the database was working I could use python in my django environment:
from MySQLdb import _mysql
db=_mysql.connect(host=”192.168.0.24”, user=”djangouser”, passwd=”secret”, db=”tutorial”)
Using existing databases
To use my existing databases on RPI I looked at django documentation for "legacy" databases.First I made my picture database the default in settings.py. I then ran inspectdb to create models.py with the appropriate database fields. Checking models.py I saw the primary key field was missing so added it. I now ran migrate which sets up the tables django requires for database access. I tested database access using the django shell to ensure I could see data.
Using Multiple databases
I expect my apps to use different databases. There are a number of ways to set this up. The simplest is to add .using('dbname') in your database access code. If you omit it django will access the default database.
No comments:
Post a Comment