【Django】Django之ORM数据库查询及获取数据操作
1、题外-POST请求-接收前端传来的参数
import json
class Register(View):
def post(self, req):
body = json.loads(req.body)
print(body, "body")
print(body["email"])
2、models-数据模型
class Permissions(models.Model):
menu = models.TextField(verbose_name='权限菜单')
class Role(models.Model):
title = models.CharField(verbose_name='角色名称', max_length=32)
status = models.IntegerField(verbose_name='状态', default=0)
permissions = models.ForeignKey(verbose_name='权限', to='Permissions', to_field='id', null=True, blank=True, on_delete=models.SET_NULL)
class Users(models.Model):
username = models.CharField(verbose_name='用户名', max_length=32)
email = models.CharField(verbose_name='邮箱', max_length=64)
password = models.CharField(verbose_name='密码', max_length=64)
status = models.IntegerField(verbose_name='状态', default=0)
role = models.ForeignKey(verbose_name='角色', to='Role', to_field='id', null=True, blank=True, on_delete=models.SET_NULL)
3、数据库查询
from app import models
doc = models.Users.objects.filter()
print(doc)
doc = models.Users.objects.filter(email=body["email"])
print(doc)
if not doc:
print('查询为空')
doc = models.Users.objects.filter(email=body["email"]).values()
print(doc)
if not doc:
print('查询为空')
doc = models.Users.objects.filter(email=body["email"]).first()
print(doc)
if not doc:
print('查询为空')
doc = models.Users.objects.filter(email=body["email"])
print(doc)
data_dict = []
for i in doc:
data_dict.append({
"id": i.id,
"username": i.username,
"email": i.email,
"password": i.password,
"status": i.status,
"role_title": i.role.title,
"role_permissions_menu": i.role.permissions.menu
})
print(data_dict, 'data_dict')
doc = models.Users.objects.filter(email=body["email"]).first()
print(doc)
print(doc.username)
print(doc.role.title)
doc = list(models.Users.objects.filter(email=body["email"]).values())
print(doc, "doc")
res_ls = []
for i in doc:
role = models.Role.objects.get(id=i["role_id"])
print(role, "role")
res_ls.append({
"id": i["id"],
"username": i["username"],
"email": i["email"],
"password": i["password"],
"status": i["status"],
"role_title": role.title,
"role_permissions_menu": role.permissions.menu
})
print(res_ls, 'res_ls')
doc = models.Users.objects.filter(email=body["email"]).values().first()
print(doc)
role = models.Role.objects.get(id=doc["role_id"])
print(role, "role")
data_dict = {
"id": doc["id"],
"username": doc["username"],
"email": doc["email"],
"password": doc["password"],
"status": doc["status"],
"role_title": role.title,
"role_permissions_menu": role.permissions.menu
}
print(data_dict, 'data_dict')
doc = models.Users.objects.all()
print(doc)
data_dict = []
for i in doc:
data_dict.append({
"id": i.id,
"username": i.username,
"email": i.email,
"password": i.password,
"status": i.status,
"role_title": i.role.title,
"role_permissions_menu": i.role.permissions.menu
})
print(data_dict, 'data_dict')