In [2]:
!django-admin startproject myproj1
!cd myproj1 && django-admin startapp myapp1
In [2]:
from django.db import models
class Profile(models.Model):
''' Description of T/S Profile'''
lon = models.FloatField()
lat = models.FloatField()
class Variable(models.Model):
''' Description of Temperature, Salinity, etc '''
name = models.CharField(max_length=200)
units = models.CharField(max_length=200)
class Measurement(models.Model):
''' Description of a measurement '''
variable = models.ForeignKey(Variable, on_delete=models.CASCADE)
profile = models.ForeignKey(Profile, on_delete=models.CASCADE)
depth = models.FloatField()
value = models.FloatField()
In [ ]:
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'myapp1', ### ADD THIS LINE. RESPECT SYNTAX!
)
In [6]:
!cd myproj1 && ./manage.py makemigrations && ./manage.py migrate
In [ ]:
import os, sys
print(sys.path.append('/src/notebooks/myproj1/'))
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myproj1.settings")
import django
django.setup()
from myapp1.models import Profile, Variable, Measurement
%whos
In [3]:
# create profile and add coordinates
p = Profile()
p.lon = 10
p.lat = 20
p.save() # save into database
# variable and add name, units
v = Variable()
v.name='salinity'
v.units='psu'
v.save()
# create a measurement
m = Measurement()
m.variable = v
m.profile = p
m.depth = 10
m.value = 35
m.save()
# Use your imagination
# Create many more measurements
# get all measurements
ms = Measurement.objects.all()
print (ms)
print (ms[0].value)
print (ms[0].profile.lon)
print (ms[0].variable.name)
# find only salinities
salOnly = Measurement.objects.filter(variable__name='salinity')
# find only measurements deeper than 5 m
deepMes = Measurement.objects.filter(depth__gte=5)
mynotebooks/myptoj1 run commandpython manage.py createsuperuser
Username: admin
Email address:
Password: **********
Password (again): *********
Superuser created successfully.
mynotebooks/myproj1/myapp1/admin.py :
In [ ]:
from django.contrib import admin
# Register your models here.
from .models import Profile, Variable, Measurement
admin.site.register(Profile)
admin.site.register(Variable)
admin.site.register(Measurement)
mynotebooks/myptoj1 run commandpython manage.py runserver 0.0.0.0:8000
In [ ]: