一、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先填充);
2> 字段的创建
字段即类里面的属性(变量);
attr = models.CharField(max_lenght=64)
变量名 = models下的某个字段类(字段类是可以传参数的,大部分是可选的,此处的max_lenght是用来约束其长度的);
关于类的字段及其可选参数可以去django的官方网站中的文档中查看:
http://docs.djangoproject.com/en/1.10/ref/models/fields/
3> 生成数据表
步骤: 命令行中进入manage.py同级目录;
执行 python manage.py makemigrations app名(可选参数:应用名)(如果不设的话,则默认该项目下的所有应用都生成数据迁移);
再执行 python manage.py migrate
下图是借的教程上的图,我操作时只有一个OK,忘了截图了;
4> 查看
django会自动在app/migrations/目录下生成移植文件;
执行 python manage.py sqlmigrate 应用名 文件id 查看SQL语句;
默认sqlite3的数据库在项目根目录下db.sqlite3
5> 插入数据
教程上推荐的查看数据库的第三方软件:
方法一:
下载完之后,直接把db.sqlites拉进SQLite Expert Personel即可;
方法二:
也可在此处编辑数据库
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 })
前端步骤:
模板可直接使用对象以及对象的 “ . ” 操作符(调用实例的方法和后台是一样的);
{{ article . title }}
最后启动服务器:python manage.py runserver
错误:
解决方法:(谨记如果改动APP的url,一定要再用命令启动一下服务)
查到还有一种情况:
二、Admin
什么是admin?
Admin 是 django 自带的一个功能强大是自动化数据管理界面;
被授权的用户可直接在 Admin 中管理数据库;
Django 提供了许多针对 Admin 的定制功能;
配置Admin
1、Django 本身自带的
本身就存在于项目中,是 Django 自己创建的,即 Django 自带的一个 APP;
所以我们不需要去进行开发的工作,只需要创建一个超级用户;
2、创建用户
1> 创建超级用户:python manage.py createsuperuser
注意:可以用中文名字当密码,但不可以用英文名
2> 访问后台管理系统
Admin 入口:localhost:8000/admin/
即根 urls.py 里自带的url :admin
注意:要先启动:python manage.py runserver
在输入网址:localhost:8000/admin
即可进入登录界面;
即可进入项目自带的后台管理系统:
3> 将界面改成中文的
修改 setting.py 中 LANGUAGE_CODE= ‘zh_Hans’/‘zh-hans’
原默认是’en_us’;
注意选择不能用 ‘zh-cn’ / ‘zh-tw’ 了,只能用 ‘zh-hans’ / ‘zh-hant’,简体与繁体;
用 'zh_Hans’会出错(可能是我个人版本或者电脑的问题):
所以只能改为:‘zh-hans’
3、配置应用
想要操作应用下的数据,首先要配置应用;
1> 在应用下 admin.py 中引用自身的 models 模块(或里面的模型类);
2> 编辑 admin.py :admin.site.register(models.Article)
易出错误:
改正:from 和 admin 之间加上 ‘.’
即:from . models import Article
admin.site.register(Article)
刷新网页:
修改数据:
具体步骤:
点击 Article 超链接进入 Article 列表页面;
点击任意一条数据,进入编辑页面修改;
编辑页面下方一排按钮可执行相应操作;
操作方法:
1、点击 blog 进入 blog 页面,再点击 Article 即可看到数据;
<1>:
<2>:
<3>:
<4>:
2、直接点击 Article;
<1>:
<2>、<3>同上面的<3>、<4>;
修改文章:
1> 直接编辑并点击保存;
2> 重新打开一个页面;
localhost:8000/blog/index
缺陷:
添加文章时都是 Article object ,不易分辨;
解决方法:另其显示标题
修改数据默认显示名称:
刷新页面: