数据库的配置:
1.在settings.py中配置DATABASES
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'mydb',
'USER': 'admin',
'PASSWORD': 'Root110qwe',
'HOST': '127.0.0.1',
'PORT': '3306',
}
}
2.pymsql数据库连接器的配置:
在虚拟环境中安装pymysql: pip install pymysql
设置连接器为pymysql:在主目录下的的init.py文件添加下面两句
import pymysql
pymysql.install_as_MySQLdb()
3.使用django中的模型:
from django.db import models
class User(models.Model):
id = models.AutoField(primary_key=True)
name = models.CharField(max_length=30)
age = models.IntegerField()
def __str__(self):
return 'User<id=%s,name=%s,age=%s>'%(
self.id,self.name,self.age)
1.首先执行以下命令,要创建映射文件
# 在执行前,保证我们创建模型的APP是已经注册过的APP
python manage.py makemigrations blog
2.执行以下命令,将映射文件中的映射数据提交到数据库中
python manage.py migrate blog
打开数据我们能看到创建的以app名_模型名的数据表,而其他的一些表格是django自动生成的.
注意:如果要删除表,那么可以去django模型中注释掉模型类,然后执行映射的命令,不要手动在命令行里面去删除.
数据的增删改查
1.增加数据
在视图函数中导入User模型类,然后使用下面的方法添加数据
from .models import User
def add_user(request):
xps = User(name='xps',age=18)
xps.save()
xps2 = User()
xps2.name='xps2'
xps2.age=17
xps2.save()
User.objects.create(name='xps3',age=19)
User.objects.get_or_create(name='xps4',age=20)
return HttpResponse("插入数据成功")
2.查找数据
在视图函数中导入User模型类,实现简单的查找
from .models import User
def search_user(request):
rs = User.objects.all()
rs = User.objects.get(id=2)
rs = User.objects.first()
rs = User.objects.filter(name='xps')
rs = User.objects.exclude(name='xps2')
rs = User.objects.last()
rs = User.objects.order_by('age')
rs = User.objects.order_by('-age')
rs = User.objects.order_by('age','id')
rs = User.objects.all().values()
rs = User.objects.count()
rs = User.objects.filter(name__exact='xiaoming')
rs = User.objects.filter(name__contains='xiao')
rs = User.objects.filter(name__startswith='xiao')
rs = User.objects.filter(age__in=[18, 19, 20])
rs = User.objects.filter(age__gt=20)
rs = User.objects.filter(age__gte=20)
rs = User.objects.filter(age__lt=20)
rs = User.objects.filter(age__lte=20)
rs = User.objects.filter(age__range=(18, 20))
rs = User.objects.filter(country__isnull=True)
rs = User.objects.all()[:2]
print(rs)
return HttpResponse('查询数据成功')
"""
1.支持索引
2.支持切片,不支持负索引
3.可迭代对象
4.可通过list进行强行转换
"""
3.修改数据
在视图函数中导入User模型类,然后使用下面的方法更新数据
def update_user(request):
xps = User.objects.get(name='xps')
xps.name = "XPS"
xps.save()
User.objects.filter(id=2).update(name='xxx')
User.objects.all().update(age=10)
return HttpResponse('更新数据成功')
4.删除数据
def delete_user(request):
rs = User.objects.all()
print(dir(rs))
User.objects.filter(name='xps3').delete()
return HttpResponse('删除数据成功')