django 连接mysql的配置流程:
安装 pymysql pip install pymysql
创建数据库用户(有创建数据库权限)
创建数据库
修改配置settings
修改项目文件夹(和settings.py文件所在的目录)下__init__.py 文件
写上:
import pymysql
pymysql.install_as_MySQLdb()
设置时区 TIME_ZONE = ‘Asia/ShangHai‘ # 北京时间
ORM概念:对象关系映射(Object Relational Mapping,简称ORM)
ORM的优势:不用直接编写SQL代码,只需像操作对象一样从数据库操作数据。
django模型映射关系:
模型类必须都写在app下的models.py文件中。
模型如果需要映射到数据库,所在的app必须被安装.
一个数据表对应一个模型类,表中的字段,对应模型中的类属性.
创建模型
? 每一个模型都是django.db.models.Model的子类
? 类变量 表示模型中的数据库字段
? 每一个字段由一个字段类的实例表示
激活模型
项目中注册app
在settings.py中配置DATABASES
运行数据库迁移命令(一定要在项目根目录下)
python mange.py makemigrations teacher # 将模型类映射到数据库(其中teacher为指定映射,不写默认全部映射)
python manage.py migrate # 将映射文件中的映射数据提交到数据库中
打开数据我们能看到创建的以app名_模型名的数据表,而其他的一些表格是django自动生成的.
注意:如果要删除表,那么可以去django模型中注释掉模型类,然后执行映射的命令,不要手动在命令行里面去删除.
-工具 django shell 调试
python manage.py shell
from movie.models import Movie # movie为app名,Movie为模型类
def add_date(request):
# 方法一
movie_1 = Movie(name="情圣", time=2010) # 模型类的实例
movie_1.save()
# 方法二
movie_2 = Movie()
movie_2.name = '毒液'
movie_3.time = 2016
# 方法三
Movie.objects.create(name="贞子", time=2001)
# 方法四
Movie.object.get_or_create(name="赌圣", time=2004)
return HttpResponse('插入数据')
def delete_date(request):
# 条件删除
Movie.objects.get(time=2010).delete()
Movie.objects.filter(name="情圣")。delete()
# 全删除
Movie.objects.all().delete()
return HttpResponse('删除成功')
def update_date(request):
# 方法一:先查找对象后修改
rs = Movie.objects.get(name="赌圣")
rs.name = '赌圣2'
rs.save()
# 方法二:直接修改
Movie.objects.filter(name="赌圣").update(name="赌圣2")
# 全部修改
Movie.objects.all().update(time=2010)
return HttpResponse('修改成功')
all()和filter()方法返回的是QuerySet对象.
get()方式返回的单个对象,如果符合条件的对象有多个,则get报错!
def search_date(request):
# 查询所有数据对象
re = Movie.objects.all()
# 查询一个数据对象
re = Movie.objects.get(time=2001)
# 查询满足条件的对象
re = Movie.objects.filter(name="情圣")
print(re)
return HttpResponse('查询成功')
原文:https://www.cnblogs.com/xjl-dwy/p/10432546.html