django之连接操作mysql

django连接数据库,主要是在settings.py文件中,通过DATABASES项进行数据库配置

django支持的数据库包括sqlite,mysql等主流数据库

django默认使用SQLite数据库

本文主要讲解mysql的配置连接以及操作

1,连接数据库,配置settings.py

DATABASES = {
‘default’: {
‘ENGINE’: ‘django.db.backends.mysql’,
‘NAME’: ‘test2’,
‘USER’:‘root’,
‘PASSWORD’:‘123456’,
‘PORT’:‘3306’,
‘HOST’:‘localhost’,
}
}
NAME:需要连接的数据库名称
USER:用户名
PASSWORD:密码
PORT:端口,mysql默认3306

这时已经可以连接mysql,但是有时会报错Error loading MySQLdb module
这个是因为py2和py3有差异的原因。
只需要在你新建的应用里的__init__.py文件里加入这样两行代码:
import pymysql
pymysql.install_as_MySQLdb()
具体想知道什么原因导致错误可以参见我的另一篇博客关于django连接mysql报错Error loading MySQLdb module的问题

连接mysql之后,就是要对数据库进行操作了

2,对数据库的增删查改

在这里拿我自己的项目来说,之前我已经定义了models.py写了一个测试类
在这里插入图片描述
然后python manage.py makemigrations生成迁移,python manage.py migrate执行迁移,数据库生成了这样一些表
在这里插入图片描述

在我们的views.py文件里,操作数据库
from .models import StuInfo
查询数据

def query(request):
		messages = StuInfo.objects.all()
		#messages = StuInfo.objects.get(pk=1)
		#messages = StuInfo.objects.filter(name='xx',id='1')
    	for i in messages:
        		print(i.name)
		return render(request,'xxx.html',{'user':messages})

render的第三个参数以json的形式将messages数据传给xxx.html页面,可以在html页面通过{{ user.name }}取出数据库里的用户的姓名

插入数据

def insert(request):
		models.StuInfo.objects.create(
        		name='xxx',
       	 		gender='xxx',
        		sno='xxx',
       	 		score='xxx',
   		 )
		return render(request,'xxx.html')

def insert(request):
		user = UserInfo()
    	user.name='xxx'
    	user.gender='xxx'
    	user.sno='xxx'
    	user.score='xxx'
    	user.save()
    	return render(request,'xxx.html')

删除数据

def delete(request):
		user= StuInfo.objects.get(name='xxx')
		user.delete()
		return render(request,'xxx.html')

修改数据
修改数据其实就是先查询,然后再修改属性值

def mod(request):
		user= StuInfo.objects.get(name='xxx')
		user.name='zzz'
		user.save()
		return render(request,'xxx.html')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值