数据库设置(DATABASES)
文件mysite/settings.py里,包含了按模块级别的设置。
默认使用SQLite,它已经包含在Python里了。如果希望使用其他数据库,可以改变DATABASES ‘default’项。
1.ENGINE。可选内容包括’django.db.backends.sqlite3’、’django.db.backends.postgresql’、’django.db.backends.mysql’、’django.db.backends.oracle’等等。
2.NAME。数据库名称。
3.USER。数据库用户。
4.PASSWORD。数据库密码。
5.HOST。数据库主机。
6.PORT。数据库端口。
时区(TIME_ZONE)
设置本地时区
安装的应用(INSTALLED_APPS)
1.django.contrib.admin。管理员站点。
2.django.contrib.auth。验证系统。
3.django.contrib.contenttypes。内容类型框架。
4.django.contrib.sessions。会话框架。
5.django.contrib.message。消息框架。
6.django.contrib.staticfiles。管理静态文件。
这些默认都自动安装了。
数据库迁移
$ python manage.py migrate
数据迁移只针对已安装的应用。
创建models(数据模型)
对于投票系统,我们创建两个数据模型,Question和Choise。
Question包括question和发布日期,Choise包括选项文本和票数。
polls/models.py
from django.db import models
class Question(models.Model):
question_text = models.CharField(max_length=200)
pub_date = models.DateTimeField('date published')
class Choice(models.Model):
question = models.ForeignKey(Question, on_delete=models.CASCADE)
choice_text = models.CharField(max_length=200)
votes = models.IntegerField(default=0)
激活models(使用数据模型)
把polls应用添加到INSTALLED_APPS模块中。
mysite/settings.py
INSTALLED_APPS = [
'polls.apps.PollsConfig',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
然后执行数据迁移。
$ python manage.py makemigrations polls
总的来说,可分为三步:
1.改变数据模型,修改models.py文件
2.执行 python manage.py make migrations。创建这些改变的迁移。
3.执行 python manage.py migrate 。应用这些改变到数据库中。
玩转API
$ python manage.py shell
Django Admin
按提示,创建超级管理员
$ python manage.py createsuperuser
启动服务后,可以登录admin站点。
添加管理员面板功能
在管理站点添加poll应用可修改,通知admin Question对象有admin接口。
polls/admin.py
from django.contrib import admin
from .models import Question
admin.site.register(Question)
1.Question会自动生成Form。
2.不同字段类型会关联到HTML中相应的输入控件。
3.DateTimeField会取到JS日期快捷日历。
按钮有如下选项。
1.save。保存改变项,返回改变列表。
2.save和continue editing。保存改变项,重新加载管理页面。
3.save和add another。保存改变项,加载新的添加项页面。
4.delete。显示删除确认页面。