18.2.py
from django.db import models
class Topic(models.Model):
#用户学习的主题
text =models.CharField(max_length = 200)
date_added = models.DateTimeField(auto_now_add = True)
def __str__(self):
return self.text
#返回模型的字符串表示
class Entry(models.Model):
#学到的有关某个主题的具体知识
topic = models.ForeignKey(Topic,on_delete=models.CASCADE)
text = models.TextField()
date_added = models.DateTimeField(auto_now_add = True)
class Meta:
verbose_name_plural = 'entries'
def __str__(self):
#返回模型的字符串表示
if len(self.text) > 50:
return self.text[:50] + "..."
else:
return self.text
18.4
首先,我们需要创建一个pizzas文件夹,在这个文件夹中建立虚拟环境python -m venv 1_env
然后我们需要激活虚拟环境source 1_env/bin/activate
然后我们在这个虚拟环境中安装Django,
pip install Django==1.11
之后我们在文件夹中创建项目```
django-admin.py startproject pizza .
然后创建数据库
python manage.py migrate
运行查看项目
python manage.py runserver
在浏览器中输入http://127.0.0.1:8000/
就可以看到网页了
之后我们另外开启一个终端并且激活虚拟环境,并且新建一个pizzas的文件
source 1_env/bin/activate
python manage.py startapp pizzas
随后我们修改models.py和settings.py
models.py
from django.db import models
class Pizza(models.Model):
name = models.CharField(max_length = 200)
date_added = models.DateTimeField(auto_now_add=True)
def __str__(self):
#返回披萨的字符串表示
return self.name
class Topping(models.Model):
pizza = models.ForeignKey(Pizza,on_delete=models.CASCADE)
name = models.TextField()
date_added = models.DateTimeField(auto_now_add=True)
class Meta:
verbose_name_plural = 'entries'
def __str__(self):
return self.name
settings.py
--snip--
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
# 我的应用
'pizzas'
]
--snip--
然后我们进行以下2个步骤,对pizzas调用makemigrations;让Django迁移项目。
python manage.py makemigrations pizzas
python manage.py migrate``
以上没有文件名的代码都是在终端运行,然后我们就可以在网站中输入我们想要的披萨名字和配料,之后可以用shell来验证是否正确
`