django——入门3

一、Models

Model是什么?

​ 通常,一个Model对应数据库的一张数据表;

​ django中Models以类的形式表现;

​ 它包含了一些基本字段以及数据的一些行为;

​ 在django中,我们以创建类的形式来创建数据表;

ORM

​ 对象关系映射(Object Relation Mapping);

​ 实现了对象和数据库之间的映射;

​ 隐藏了数据访问的细节,不需要编写SQL语句;

编写Models

步骤:

​ 在应用根目录下创建models.py,并引入moddels模块(django在创建应用时自动帮我们创建过了);

​ 创建类,继承models.Model,该类即是一张数据表;

​ 在类中创建字段;

1> 创建类

​ 先在blog的mosels.py里创建一个类(Article)继承models.Model这个父类(内容没写时可用pass先填充);

django——入门3

2> 字段的创建

​ 字段即类里面的属性(变量);

​ attr = models.CharField(max_lenght=64)

​ 变量名 = models下的某个字段类(字段类是可以传参数的,大部分是可选的,此处的max_lenght是用来约束其长度的);

django——入门3

​ 关于类的字段及其可选参数可以去django的官方网站中的文档中查看:

​ http://docs.djangoproject.com/en/1.10/ref/models/fields/

3> 生成数据表

​ 步骤: 命令行中进入manage.py同级目录;

​ 执行 python manage.py makemigrations app名(可选参数:应用名)(如果不设的话,则默认该项目下的所有应用都生成数据迁移);

​ 再执行 python manage.py migrate

django——入门3

下图是借的教程上的图,我操作时只有一个OK,忘了截图了;

django——入门3

4> 查看

django会自动在app/migrations/目录下生成移植文件;

django——入门3

执行 python manage.py sqlmigrate 应用名 文件id 查看SQL语句;

django——入门3

默认sqlite3的数据库在项目根目录下db.sqlite3

django——入门3

5> 插入数据

教程上推荐的查看数据库的第三方软件:

django——入门3

方法一:

下载完之后,直接把db.sqlites拉进SQLite Expert Personel即可;

django——入门3

django——入门3

django——入门3

方法二:

也可在此处编辑数据库

django——入门3

6> 页面呈现数据
后台步骤:

第一步:取出数据

​ views.py 中 import models

​ 然后获取模型类的具体对象:

​ article = models.Article.objects.get(pk=1)

​ 变量 = models模块 . 我们定义的类 . object.get(参数:我们指定的数据的标识,此处用的是主键=1,其实用content、title等都可以),这样我们就获取了主键为1的模型对象,相当于 select id = 1;

​ 最后同 rebder 把这个模型对象传递到前端

​ render(request, page, { ‘article’ :article })

django——入门3

前端步骤:

​ 模板可直接使用对象以及对象的 “ . ” 操作符(调用实例的方法和后台是一样的);

​ {{ article . title }}

django——入门3

最后启动服务器:python manage.py runserver

错误:

django——入门3

django——入门3

解决方法:(谨记如果改动APP的url,一定要再用命令启动一下服务)

django——入门3

查到还有一种情况:

django——入门3

二、Admin

什么是admin?

​ Admin 是 django 自带的一个功能强大是自动化数据管理界面;

​ 被授权的用户可直接在 Admin 中管理数据库;

​ Django 提供了许多针对 Admin 的定制功能;

配置Admin

1、Django 本身自带的

​ 本身就存在于项目中,是 Django 自己创建的,即 Django 自带的一个 APP;

django——入门3

​ 所以我们不需要去进行开发的工作,只需要创建一个超级用户;

2、创建用户

1> 创建超级用户:python manage.py createsuperuser

django——入门3

​ 注意:可以用中文名字当密码,但不可以用英文名

2> 访问后台管理系统

​ Admin 入口:localhost:8000/admin/

​ 即根 urls.py 里自带的url :admin

django——入门3

​ 注意:要先启动:python manage.py runserver

​ 在输入网址:localhost:8000/admin

​ 即可进入登录界面;

django——入门3

即可进入项目自带的后台管理系统:

django——入门3

3> 将界面改成中文的

​ 修改 setting.py 中 LANGUAGE_CODE= ‘zh_Hans’/‘zh-hans’

​ 原默认是’en_us’;

​ 注意选择不能用 ‘zh-cn’ / ‘zh-tw’ 了,只能用 ‘zh-hans’ / ‘zh-hant’,简体与繁体;

用 'zh_Hans’会出错(可能是我个人版本或者电脑的问题):

django——入门3

django——入门3
所以只能改为:‘zh-hans’

django——入门3

django——入门3

django——入门3

3、配置应用

想要操作应用下的数据,首先要配置应用;

​ 1> 在应用下 admin.py 中引用自身的 models 模块(或里面的模型类);

​ 2> 编辑 admin.py :admin.site.register(models.Article)

易出错误:

django——入门3

改正:from 和 admin 之间加上 ‘.’

​ 即:from . models import Article

​ admin.site.register(Article)

django——入门3

刷新网页:

django——入门3

修改数据:
具体步骤:

​ 点击 Article 超链接进入 Article 列表页面;

​ 点击任意一条数据,进入编辑页面修改;

​ 编辑页面下方一排按钮可执行相应操作;

操作方法:

1、点击 blog 进入 blog 页面,再点击 Article 即可看到数据;

<1>:

django——入门3

<2>:

django——入门3

<3>:

django——入门3
<4>:
django——入门3

2、直接点击 Article;

<1>:

django——入门3

<2>、<3>同上面的<3>、<4>;

修改文章:

​ 1> 直接编辑并点击保存;

django——入门3

django——入门3

​ 2> 重新打开一个页面;

localhost:8000/blog/index

django——入门3

缺陷:

添加文章时都是 Article object ,不易分辨;

django——入门3

django——入门3

django——入门3

解决方法:另其显示标题

​ 修改数据默认显示名称:

django——入门3

django——入门3

刷新页面:

django——入门3