Django实现简单的增删改查
前言
之后的项目可能会用到Django来编写后端,提前学习熟悉一下。
项目启动不起来的话,查看下面的文章来配置参数
创建Django项目
社区的Pycharm没有办法直接创建Django项目,所以需要通过命令行创建,再使用Pycharm打开。
社区版pycharm创建django项目 - 冰箱喵 - 博客园
Django ORM
Django自带ORM(对象关系映射)。可以通过描述对象和数据库之间的映射,将程序中的对象自动持久化到数据库中。
ORM解析过程:
ORM会将Python代码转换成SQL语句
pymysql将SQL语句发送到数据库服务端
在数据库中执行SQL语句并返回结果
准备操作
通过上面的链接创建好Django项目后,文件结构应该是类似下面的:
因为Django的ORM没办法操作数据库,所以需要自己启动数据库,通过命令行来创建数据库。
1 |
|
修改设置文件setting.py
中的DATABASES
配置项,将信息改成对应的数据库信息
1 |
|
修改__init__.py
文件,引入pymysql
模块连接数据库(需要先通过pip之类的工具安装好)
1 |
|
修改models.py
文件,创建数据表对应的Models类。
1 |
|
添加对应的Models
类后,还需要在setting.py
中的INSTALLED_APPS
中添加上去。
1 |
|
通过命令行来创建表结构
python manage.py migrate
python manage.py makemigrations testBackend
python manage.py migrate testBackend
urls.py
配置路由
1 |
|
新建文件testdb.py
,该文件就是用来操作数据的。
数据库操作
$\color{red}{记得启动数据库}$
添加数据
从
testBackend.models
中引入对应的Models
类创建对应的
Models
对象调用
save
方法添加数据
testdb.py
1 |
|
获取数据
通过
User.objects.all()
获取所有数据之后遍历数据,拿到想要的部分
1 |
|
当然,获取数据并不是只有all()
方法,还可以使用filter()
方法设置过滤条件、get()
方法获取单个对象、order_by()
对数据进行排序等。($\color{red}{方法支持链式调用}$)
filter()
1 |
|
get()
1 |
|
order_by()
1 |
|
- 链式调用
1 |
|
还可以配合Python的切片使用
1 |
|
修改数据
修改数据主要有两种方式:
通过
get()
方法获取唯一的一个对象实例修改该对象实例的属性
调用
save()
方法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28def testdb(request):
result = "修改前:"
users = User.objects.all()
for user in users:
result += f'<p>' \
f'<span> id: {user.id}</span>' \
f'<span> name: {user.name}</span>'\
f'<span> age: {user.age}</span>' \
f'</p>'
updateuser = User.objects.get(id=1)
updateuser.age = 999
updateuser.save()
result += "修改后:"
users = User.objects.all()
for user in users:
result += f'<p>' \
f'<span> id: {user.id}</span>' \
f'<span> name: {user.name}</span>' \
f'<span> age: {user.age}</span>' \
f'</p>'
return HttpResponse("<p>" + result + "</p>")通过
filter()
等方法获取符合修改条件的对象$\color{red}{集合}$调用
update()
方法修改
1
User.objects.filter(id=1).update(age=888)
删除数据
删除数据只需要调用对象的delete()
方法即可,对象集合调用delete()
方法也可以
1 |
|
1 |
|