【Django】(2)Django模块创建应用程序
- 保持runserver还在运行,在manage.py相同的目录下,新开一个终端窗口,激活虚拟环境,执行startapp命令
python manage.py startapp learning_logs
- 定义模型models.py
在代码层面,一个模型就是一个类。
打开models.py,写入模型Topic,描述 学习日志 的主题。
from django.db import models # Create your models here. class Topic(models.Model): text = models.CharField(max_length=200) data_added = models.DateTimeField(auto_now_add=True) def __self__(self): """返回模型的字符串表示""" return self.text
添加模型后,需要激活模型
- 激活模型
打开项目中的setting.py文件
添加这个应用程序
在终端执行 python manage.py makemigrations learning_logs
这是让Django修改数据库,使其能够储存与模型Topic相关的信息
然后应用这种迁移,执行python manage.py migrate
(每当需要修改管理的数据时,都需要采取这三个步骤,先修改models.py,然后对learning_logs调用makemigrations,然后让Django迁移项目)
即修改后需要python manage.py makemigrations APP_NAME然后python manage.py migrate
- 管理网站
1.为网站创建超级用户,执行python manage.py createsuperuser,然后输入用户名密码
2.在admin.py中向管理网站注册之前创建的Topic模型
然后访问localhost:8000/admin并输入刚刚创建的超级用户名和密码,就可以看到管理界面
可以添加一个Chess主题
无法添加,则是没有执行python manage.py migrate用来迁移
添加模型Entry来显示该主题下的条目
class Entry(models.Model): topic = models.ForeignKey('Topic',on_delete=models.CASCADE) text = models.TextField() data_added = models.DateTimeField(auto_now_add=True) class Meta: verbose_name_plural = 'entries' def __str__(self): return self.text[:50]+'...'
添加在models.py,注意指定外键的方式,否则会报错,然后迁移模块,注册Entry