django views 的增删改查
2022/5/6 6:14:19
本文主要是介绍django views 的增删改查,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
重写校验规则和插件格式,增加数据库中没有的字段
# 在view中引入数据库,并在页面中展示出来的写法 from django import forms from django.core.validators import RegexValidator # from django.core.exceptions import ValidationError class 用户注册对象(forms.ModelForm): # 重新对数据库字段格式写校验的规则 手机号 = forms.CharField(label="手机号",validators=[RegexValidator(r'^(1[3|4|5|6|7|8|9])\d{9}$','手机号输入错误'),]) 密码 = forms.CharField(widget=forms.PasswordInput(),) #重新修改数据库的插件为密码 重复密码 = forms.CharField(widget=forms.PasswordInput(),label="重复密码") class Meta: model = models.用户表 fields = '__all__' def 用户注册(request): form = 用户注册对象() return render(request,'user_add.html',{'form':form})
新增门店类型 {% csrf_token %} POST提交
<form method="POST" > {% csrf_token %} <div class="form-group"> <label>门店名称</label> <input type="text" class="form-control" placeholder="请输入新增门店的名称" name="部门名称"> </div> <button type="submit" class="btn btn-primary">提 交</button> </form> def 新增部门(request): #这种写法是原始和简单的 if request.method == "GET": return render(request, "bumen_add.html") # 获取用户通过POST提交过来的数据(要考虑输入为空,以后在完善,目前没有考虑) 部门名称 = request.POST.get("部门名称") #保存到数据库 models.部门表.objects.create(部门名称=部门名称) #重新定向回门店列表 return redirect('/bumen/liebiao')
新增类型的标准写法
from django import forms class MyForm(forms.ModelForm): 员工姓名 = forms.CharField(min_length=3,label="员工姓名") #这是增加第二个校验的条件,其他类似 class Meta: model = models.员工表 fields = ["员工姓名","员工密码","员工年龄","员工性别","账户余额","入职时间","部门ID2"] # widgets = { # "员工姓名":forms.TextInput(attrs={"class":"form-control"}) # #这句话的意思是在原有ModelFORM 方法形成的框中添加一个class样式,但有一个字段就得加一个,比较麻烦 # } def __init__(self,*args,**kwargs): super().__init__(*args,**kwargs) #重新定义__init__方法,加上super是执行父类给的方法 #循环找到所有的插件,增加新的class for name,field in self.fields.items(): #根据django源码改写 # if name == "员工姓名": #可以让某一行不加 # continue field.widget.attrs = {"class":"form-control","placeholder":"请输入" + field.label} def 新增员工(request): if request.method == "GET": form = MyForm() return render(request, "user_add.html",{'form':form}) #用户post提交数据,开始校验 form = MyForm(data=request.POST) #取到了所有的传过来的数据 if form.is_valid(): # 拿着这些数据逐个进行校验 form.save() #如果全部填写,保存到数据库 return redirect('/user/liebiao/') #校验失败,在页面显示错误信息,此时已经是填上数据的页面了 return render(request, "user_add.html", {'form': form}) #print(form.errors)
修改和删除的标准写法
def 修改员工(request,nid): 完善哪个员工 = models.员工表.objects.filter(id=nid).first() if request.method == "GET": form = MyForm(instance=完善哪个员工) return render(request, "user_xiugai.html", {'form': form}) form = MyForm(data=request.POST,instance=完善哪个员工) if form.is_valid(): form.save() return redirect('/user/liebiao/') return render(request, "user_add.html", {'form': form}) def 删除员工(request,nid): models.员工表.objects.filter(id=nid).delete() return redirect('/user/liebiao/')
这篇关于django views 的增删改查的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-24MongoDB资料:新手入门完全指南
- 2024-12-20go-zero 框架的 RPC 服务 启动start和停止 底层是怎么实现的?-icode9专业技术文章分享
- 2024-12-19Go-Zero 框架的 RPC 服务启动和停止的基本机制和过程是怎么实现的?-icode9专业技术文章分享
- 2024-12-18怎么在golang中使用gRPC测试mock数据?-icode9专业技术文章分享
- 2024-12-15掌握PageRank算法核心!你离Google优化高手只差一步!
- 2024-12-15GORM 中的标签 gorm:"index"是什么?-icode9专业技术文章分享
- 2024-12-11怎么在 Go 语言中获取 Open vSwitch (OVS) 的桥接信息(Bridge)?-icode9专业技术文章分享
- 2024-12-11怎么用Go 语言的库来与 Open vSwitch 进行交互?-icode9专业技术文章分享
- 2024-12-11怎么在 go-zero 项目中发送阿里云短信?-icode9专业技术文章分享
- 2024-12-11怎么使用阿里云 Go SDK (alibaba-cloud-sdk-go) 发送短信?-icode9专业技术文章分享