定义模型
打开models.py添加Topic类
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
Topic 的类,它继承了Model ——Django中一个定义了模型基本功能的类
定义CharField 属性时,必须告诉Django 该在数据库中预留多少空间。在这里,我们将max_length 设置成了200(即200个字符),这对存储大多数主题名来说足够了。
属性date_added 是一个DateTimeField ——记录日期和时间的数据
传递了实参auto_add_now=True ,每当用户创建新主题时,这都让Django将这个属性自动设置成当前日期和时间。
激活模型
- 打开项目learning_log中的settings.py 找到 INSTALLED_APPS添加你的应用程序 learning_logs
INSTALLED_APPS = (
--snip--
'django.contrib.staticfiles',
# 我的应用程序
'learning_logs',
)
- 让django确定如何修改数据库
执行命令
python manage.py makemigrations learning_logs
结果如下
(ll_env)learning_log$ python manage.py makemigrations learning_logs
Migrations for 'learning_logs':
0001_initial.py:
- Create model Topic
(ll_env)learning_log$
命令makemigrations 让Django确定该如何修改数据库,使其能够存储与我们定义的新模型相关联的数据。输出表明Django创建了一个名为0001_initial.py的迁移文件,这个文件将在数据库中为模型Topic 创建一个表。
- 应用迁移
执行命令python manage.py migrate
使用django管理网站
- 创建超级用户
执行命令
(ll_env)learning_log$ python manage.py createsuperuser
接着设置用户名和密码
- 向管理网站注册模型
打开learning_logs目录中的admin.py
添加代码即可
from django.contrib import admin
from learning_logs.models import Topic
admin.site.register(Topic)
小结
每当需要修改“学习笔记”管理的数据时,都采取如下三个步骤:修改models.py;对learning_logs 调用makemigrations ;让Django迁移项目——migrate。