2.Writing your first Django app, part2

Database setup
打开mysite/settings.py.它是一个普通的python模块,模块级别的变量表示Django的设置。
默认情况下,配置的是SQLite.如果要换数据库,安装合适的数据库并在DATABASES ‘default'中更改以下键的值来匹配数据库连接的设置。


屏幕快照 2018-08-29 下午1.42.12.png

编辑mysite/settings.py时,把TIME-ZONE设置为自己所在的时区。
INSRALLED_APPS,包含了所有在Django应用中激活的Django实例,默认情况下,包含以下应用:


屏幕快照 2018-08-29 下午1.49.00.png

其中一些应用程序至少使用一个数据库表,因此在使用它们之前,需要在数据库中创建表。
python3 manage.py migrate

迁移命令查看INSTALLED_APPS的设置,并根据mysite/setting.py中的设置创建任何必要的数据库表。我们将看到每个应用迁移的消息。


屏幕快照 2018-08-29 下午2.01.06.png

Creating models
我们将定义模型:数据库的布局,以及附加的元数据。
在poll应用中,我们将创建两个模型:Question 和Choice.Question包含问题和发布日期。Choice包含两个字段:选择的文本和投票点击。每个选择关联一个问题。
编辑polls/models.py文件如下:


屏幕快照 2018-08-29 下午2.15.01.png

Activating models
这一小部分模型代码给Django提供了很多信息。有了它,Django可以做:
为应用程序创建一个数据库模式
为Question和Choice对象创建了Python 数据访问接口

但首先我们需要告诉工程polls 应用已安装。要使这个工程包含这个工程,我们需要在INSTALLED_APPS设置的configuration类中添加指引。PollsConfig 类在polls/apps.py文件中,所以将"polls.apps.PollsConfig"路径添加到mysite/settings.py的INSTALLED_APPS设置中。


屏幕快照 2018-08-29 下午2.41.35.png

现在Django知道要加入polls应用。执行另一个命令:
python3 manage.py makemigrations polls
将会看到以下输出:


屏幕快照 2018-08-29 下午2.46.27.png

通过运行makemigrations,告诉Django你已经对models做过了修改,并希望把更改作为迁移。
迁移是Django存储对models的更改方式,只是磁盘上的文件。可以在polls/migrations/0001_initial.py查看它。
有一个命令将为您运行迁移并自动管理数据库模式
python3 manage.py sqlmigrate polls 0001

可以运行python manage.py check ,在不进行迁移或数据库访问的情况下,检查项目中的任何问题。
现在再运行一次迁移,在你的数据库中创建模型表:
python3 manage.py migrate


屏幕快照 2018-08-29 下午3.12.31.png

Playing with the API
调用python shell,使用以下命令:
python3 manage.py shell
使用这个命令而不是python,是因为manage.py 设置了DJANGO_SETTINGS_MODULE环境变量。这就为Django提供了到mysite/settings.py的导入路径。
在Question model中,给Question和Choice添加str()方法

屏幕快照 2018-08-29 下午4.10.05.png

在models中添加str()方法是很重要的,这不仅是为了在处理交互提示符时方便,而且因为对象的表示在Django的自动生成管理中使用
添加一个自定义的方法做示例:
屏幕快照 2018-08-29 下午4.20.43.png

Introducing the Django Admin
创建一个管理员用户:
python3 manage.py createsuperuser
启动开发服务器:
python3 manage.py runserver
在浏览器中访问 http://127.0.0.1:8000/admin/,进入到admin登录窗口:

屏幕快照 2018-08-29 下午5.24.23.png

使用超级管理员账号登录,进入到index page:
屏幕快照 2018-08-29 下午5.26.11.png

make the pull app modifiable in the admin
Poll 应用在admin index page并没有看到。我们需要告诉admin Question对象有admin的接口


屏幕快照 2018-08-29 下午5.33.58.png

你可能感兴趣的:(2.Writing your first Django app, part2)