一、数据库配置
1.ORM概念
定义:对象关系映射(Object Relational Mapping,简称ORM)
优势:不用直接编写SQL代码,只需像操作对象一样从数据库操作数据。
2.模型映射关系
- 模型类必须都写在app下的models.py文件中
- 模型如果需要映射到数据库,所在的app必须被安装.
- 一个数据表对应一个模型类,表中的字段,对应模型中的类属性.
3.数据库的配置
- 1.在settings.py中配置DATABASES
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', # 数据库引擎 'NAME': 'mydb', #数据库名称 'USER': 'admin', # 链接数据库的用户名 'PASSWORD':'qwe123', # 链接数据库的密码 'HOST': '127.0.0.1', # mysql服务器的域名和ip地址 'PORT': '3306', # mysql的一个端口号,默认是3306 } }
- 2._init_.py
设置连接器为pymysql: 在主目录下的的__init__.py文件添加下面两句 import pymysql pymysql.install_as_MySQLdb()
二、模型的创建与映射
1.使用Django中的模型
在app下面的models.py中创建django的模型类.
代码如下:
from django.db import models
class User(models.Model): #模型类名 对应表名
id = models.AutoField(primary_key=True) #id 可以省略 会自动创建
name = models.CharField(max_length=30) #字符类型
age = models.IntegerField() #整数类型
def __str__(self): #使用查询方法时,数据的展示方式
return "User<id={0}>,name={1},age={2}".format(self.id, self.name, self.age)
2.将模型类映射到数据库
- 首先执行以下命令,要创建映射文件
-python manage.py makemigrations app_name
-命令后面可以跟app名称,表示指定对某个app的模型进行映射,没写所有的app都执行.
- 执行以下命令,将映射文件中的映射数据提交到数据库中
-python manage.py migrate
-在执行前,保证我们创建模型的APP是已经注册过的APP
(django_moran) [lemon@iZbp159egvvktszc82dr5xZ testPro]$ python manage.py makemigrations model_test
Migrations for 'model_test':
model_test/migrations/0001_initial.py
- Create model User
打开数据我们能看到创建的以app名_模型名的数据表,而其他的一些表格是django自动生成的.
注意:如果要删除表,那么可以去django模型中注释掉模型类,然后执行映射的命令,不要手动在命令行里面去删除.
3.数据的增删改查
3.1数据的增删改查----------增加数据
在视图函数中导入User模型类,然后使用下面的方法添加数据
def add_user(request):
#方法一
moran = User(name='wuyifan', age=43)
moran.save()#保存上传
return HttpResponse('数据添加成功')
#方法二
wufeng = User()
wufeng.name = 'Tom'
wufeng.age = 19
wufeng.city = 'Shanghai'
wufeng.save()
return HttpResponse(f'数据{
wufeng.name}添加成功!')
#方法三
User.objects.create(name='Siri', age=17, city='Shijiazhuang')
return HttpResponse('数据添加成功!')
#方法四
User.objects.</