Django由一系列应用程序组成,彼此协同工作。
python manage.py startapp learning_logs
ls
ls learning_logs
命令“startapp”让Django建立创建应用程序的基础设施。
新建一个文件夹learning_logs,其中models定义在应用程序中管理的数据;
admin.py,管理网站注册模型;
views.py,接受请求信息将生成网页所需数据发送给浏览器;
1、定义模型
自动导入了models模块,允许我们创建自己的模型;模型告诉Django如何处理应用程序中存储的数据;
创建一个名为Topic的类,它继承了Model类(定义了模型基本功能):
属性test是一个CharField--由字符或文本组成的数据,适合存储少量的文本;(定义CharFiled属性时必须告诉Django在数据库中预留多少空间)
属性date_added是一个DateTimeField--记录日期和时间;(实参auto_add_now每当用户创建新主题时都自动设置当前日期和时间)
方法__str__()为显示模型的简单表示
2、激活模型
编辑/learning_log/learning_log/settings.py,INSTALLED_APPS为一个元组,告诉Django由哪些应用程序组成;
添加我的应用程序,通过将应用程序编组有助于后期管理;
接下来,命令makemigrations让Django修改数据库,使其能够存储与自定义的新模型相关联的数据;
输出表明Django创建一个名为0001_initial.py的迁移文件,该文件将在数据库中为模型Topic创建一个表;
应用该迁移让Django自行修改数据库,尾行确认Django为learning_logs应用迁移时一切正常;
python manage.py makemigrations learning_logs
python manage.py manage.py migrate
3、管理网站(用于模型处理)
创建超级用户:
python manage.py creatsuperuser
username:11_admin password:superuser
Django并不存储密码,而是存储密码的散列值。
在管理网站注册模型:
编辑/learning_log/learning_logs/admin.py,注册Topic和Entry模型
使用超级用户账户访问管理网站:访问 http://localhost:8000/admin/ ,添加和修改用户和用户组,管理与模型相关的数据;
添加主题:
点击Topics添加主题;
定义并迁移模型Entry;
交互式环境:Django shell
python manage.py shell
from learning_logs.models import Topic
Topic.objects.all()
topics = Topic.objects.all()
for topic in topics:
print(topic.id, topic)
t = Topic.objects.get(id=1)
t.text
t.date_added
t.entry_set.all()