本篇将介绍Django如何建立数据库,如何创造你的第一个模型,还会接触到Django自带的后台管理系统,
打开 demo_proj/settings.py,Django 项目的配置都在此。 Python 内置了 SQLite,你无需安装就可以使用它,但当你开始一个真正的项目时,你可能更倾向使用一个更具扩展性的数据库,例如 MySQL, 在配置文件中使用 SQLite 作为默认数据库,我们的演示也用SQLite。以下就是数据库的配置项:
ENGINE
数据库引擎,看你是选择哪种数据库,是SQLite,或者 是MySQL,还是其他,可选值有name
数据库名称,如果是 SQLite,数据库将是你电脑上的一个文件,那么, NAME 应该是此文件的绝对路径,包括文件名。默认值 os.path.join(BASE_DIR, 'db.sqlite3') 将会把数据库文件储存在项目的根目录。Django是通过 migrate
命令来检查 settings.py 文件中的 INSTALLED_APP 配置项,为其中的每个应用创建数据表的。
先来关注下 INSTALLED_APP
配置项,我们在Django项目中所有的应用对会包括在此(上篇文章创建的 demo_app
也要手动加到这配置项里)。通常 INSTALLED_APP
会默认包括以下自带的应用
这些应用被默认启用是为了给项目提供方便,比如 django.contrib.admin
会帮你建立个管理后台, django.contrib.auth
会极大方便登录验证,等等,后续我们会陆续介绍到。这些应用都需要数据表,比如 django.contrib.admin
是后台管理,那么就必须要有后台管理员。那么就要求数据库中必须有类似user表的来维护管理员数据。
Django 通过 migrate
命令 根据 不同的app 来创建不同的表,执行命令
当看到 如下反馈就表示执行成功:
我们可以查看数据库,会发现多了许多的表,如图所示:
模型是真实数据的简单明确的描述,它包含了存储的数据所必要的字段和行为。每一个模型映射一个数据库表,一般都写在 models.py
中。
打开 demo_app
中的models.py 文件,修改代码如下:
在Cat 类 我们定义了 __str__()
方法,这个方法用来有什么作用,大家可以自己找找答案。
那我们如何把我们刚建的Cat类映射到数据表中呢?执行如下命令即可:
我们查看数据库,会发现了多了Cat这个表
这样,我们新建的模型就和数据库中的表建立起了映射关系了。那我们如何操作模型呢,也就是我们如何实现对数据库进行增删改查操作呢?Django 为我们提供了各种API,我们进入交互式Python命令行来体验下:
至此,Django如何配置数据库,如何创建model,如何把model映射到数据库中以及对model的操作我们都以熟悉了下,我们将在后面的课程中的更加深入的介绍model的一些用法。
Django 为我们提供了功能强大的后台。在后台中,我们可以利用Django自带的功能对定义的对象进行添加,修改,和删除。
要登录到后台,首先必须有管理员账户,运行如下命令:
启动我们的工程,在浏览器中输入 http://127.0.0.1:8000/admin/
,系统会跳转到后台系统的登录页面:
输入我们刚才建立的管理员账号和密码,我们会进入到后台管理系统的索引页
我们刚才建立的Cat类在哪里呢?别急,要想在后台看到这个类还得告诉后台系统,Cat类需要被管理,打开 demo_app
/admin.py 文件:
刷新页面,就可以看到我们定义的Cat类了:
点击Cat,系统就会跳转的Cat 对象的列表页面,我们刚才演示的操作API 新建的 Cat 对象也在此
点击 miaomiao 就进入到编辑页面
编辑和删除功能都能实现。
在介绍了上面的内容之后,我再来补充介绍下常用的Djano字段类型。
max_digits
和小数位decimal_places
auto_now = True
则每次更新都会更新这个时间;auto_now_add
则只是第一次创建添加,之后的更新不再改变。同(models.DateTimeField)