数据库查询操作
python
#查询一条数据
try:
a = User.objects.get(email=email).first()
a.vcode = '我很好' #查询再修改
a.save() #再保存
except User.DoesNotExist:
raise forms.ValidationError(_("该邮箱账户不存在"))
#列出表的所有数据
jieguo = Question.objects.all()
#查询符合条件的所有数据
jieguo = Question.objects.filter(name='我很好')
for b in jieguo:
print(f"内容: {b.question_text}, 时间: {b.pub_date}")
#查询一条数据并且不会抛出错误
user = User.objects.filter(email=email).first()
#查询数据是否存在,返回True或False
User.objects.filter(email=email).exists()
#列出符合多个条件的
from django.db.models import Q
#列出符合diqu='cn'或diqu='ty'的两种结果
shangpins = Shangpin.objects.filter(Q(diqu='cn') | Q(diqu='ty'))
#列出同时符合name='哇哈哈'且leixing='饮料'的一种结果:
shangpins = Shangpin.objects.filter(Q(name='哇哈哈') & Q(leixing='饮料'))
#查询所有符合zhuangtai='dd',然后排除bizhong='BTC'的结果
dingdans = Dingdan.objects.filter(zhuangtai='dd').exclude(bizhong='BTC')
数据库操作
python
from myapp.models import Choice, Question #导入数据库
from django.utils import timezone #导入时间
#写一条数据,并将对象赋予q
q = Question(question_text="你好", pub_date=timezone.now())
q.save() #保存
q.uestion_text #读数据会返回"你好"
q.uestion_text = "你好呀" #再重新指定
q.save() #修改再保存
q.delete() #删除这条数据
#直接写一条数据
Gouwuche.objects.create(user=request.user, sku=sku_id, number=1)
#直接删除数据
Gouwuche.objects.filter(user=request.user).delete()
#根据条件更新数据
Usdtqianbao.objects.filter(dizhi=chuzhidd.shoukuanqianbao).update(zhanyong=True) #前面是搜索条件,后面是更新内容
模型设置外键
python
class Dingdanmx(models.Model):
dingdan = models.ForeignKey(Dingdan, on_delete=models.CASCADE, related_name='dingdanmxs') #外键名
sku = models.ForeignKey(Sku, on_delete=models.CASCADE) # 需要定义 Sku 模型
number = models.SmallIntegerField()
jine = models.DecimalField(max_digits=25, decimal_places=15)
jieshouzhanghao = models.CharField(max_length=255, null=True)
neirong = models.CharField(max_length=255, null=True)
xiadanid = models.CharField(max_length=255, null=True)
jieguo = models.BooleanField(null=True)
模板中遍历外键
html
{% for dingdanmx in dingdan.dingdanmxs.all %}
<small class="is-size-7">{{ dingdanmx.id }}
{% if dingdanmx.jieshouzhanghao %}
({{ dingdanmx.jieshouzhanghao }})
{% endif %}
</small>
{% endfor %}