-
使用Django的ORM详细步骤
-
ORM表单的增加与查询
-
展示用户列表
-
添加新用户
1.使用Django的ORM详细步骤:
1. 自己动手创建数据库
create database 数据库名;
2. 在Django项目中设置连接数据库的相关配置(告诉Django连接哪一个数据库)
# 数据库相关的配置
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', # 连接的数据库类型
'HOST': '127.0.0.1', # 连接数据库的地址
'PORT': 3306, # 端口
'NAME': "day61", # 数据库名称
'USER': 'root', # 用户
'PASSWORD': '123456' # 密码
}
}
3. 告诉Django用pymysql代替默认的MySQLDB 连接MySQL数据库
在项目/__init__.py文件中,写下面两句:
import pymysql
# 告诉Django用pymysql来代替默认的MySQLdb
pymysql.install_as_MySQLdb()
4. 在app下面的models.py文件中定义一个类,这个类必须继承models.Model
class 类名(models.Model):
...
# ORM相关的只能写在这个文件里,写到别的文件中Django找不到
class UserInfo(models.Model):
id = models.AutoField(primary_key=True) #创建一个自增的主键
name = models.CharField(null=False, max_length=20) #创建一个varchar类型的不能为空的字段
5. 执行两个命令
1. python3 manage.py makemigrations #用小本本将models.py里面的改动记录下来,记录到app1/migrations文件夹下面
2. python3 manage.py migrate #把改动翻译成SQL语句去数据库执行
2.ORM单表的增加和查询:
1. 查询
models.UserInfo.objects.all()
2. 增加
models.UserInfo.objects.create(name="张三")
3.ORM展示用户列表:
需求是在输入127.0.0.1/user_list/ 之后,会在这里页面上打印我数据库的所有的用户信息。
a.首先,先在数据表UserInfo中的id和name插入了两条值。
b.写入函数
![](https://images2018.cnblogs.com/blog/1478325/201808/1478325-20180831221041164-1928787590.png)
![](YinXiangBiJi.enex_files/Image.png)
c.写函数
![](https://images2018.cnblogs.com/blog/1478325/201808/1478325-20180831221049011-1069099044.png)
![](YinXiangBiJi.enex_files/Image [1].png)
d.创建user_list.html文件:
![](https://images2018.cnblogs.com/blog/1478325/201808/1478325-20180831221057169-1821931629.png)
![](YinXiangBiJi.enex_files/Image [2].png)
e.到此大功告成,输入url,显示结果:
![](https://images2018.cnblogs.com/blog/1478325/201808/1478325-20180831221105979-1992657639.png)
![](YinXiangBiJi.enex_files/Image [3].png)
4.需求升级,添加新用户:
需求:在全部用户界面显示添加新用户,点击后跳转可以提交一个用户名,然后把用户名添加到数据库中,跳转之后再次显示全部的用户名
a.在user_list.html中添加字段:
![](https://images2018.cnblogs.com/blog/1478325/201808/1478325-20180831221118522-709833431.png)
![](YinXiangBiJi.enex_files/Image [4].png)
b.创建add_user函数:
![](https://images2018.cnblogs.com/blog/1478325/201808/1478325-20180831221127560-1399459555.png)
![](YinXiangBiJi.enex_files/Image [5].png)
![](YinXiangBiJi.enex_files/Image [6].png)
c.写add_user.html页面:
![](https://images2018.cnblogs.com/blog/1478325/201808/1478325-20180831221141652-807290330.png)
![](YinXiangBiJi.enex_files/Image [7].png)
d.效果演示
![](https://images2018.cnblogs.com/blog/1478325/201808/1478325-20180831221150660-1072253556.png)
![](YinXiangBiJi.enex_files/Image [8].png)
![](YinXiangBiJi.enex_files/Image [9].png)
![](YinXiangBiJi.enex_files/Image [10].png)
需求完成!
5.ORM对应关系梳理:
![](YinXiangBiJi.enex_files/Image [11].png)
![](https://images2018.cnblogs.com/blog/1478325/201808/1478325-20180831221210911-1960278159.png)