当前位置: 首页 > news >正文

手机模板网站模板免费下载广州seo黑帽培训

手机模板网站模板免费下载,广州seo黑帽培训,绍兴网站制作建设,各个视频网站怎么做原创作者1.目的是根据员工表字段,实现一个新增员工的数据填写页面 2.在views.py文件中按下面的格式写 定义 ModelForm 类:UserModelForm (自己命名的类名)使用时需要导入包 定义视图函数:user_model_form_add(在函…

1.目的是根据员工表字段,实现一个新增员工的数据填写页面

2.在views.py文件中按下面的格式写

定义 ModelForm 类:UserModelForm (自己命名的类名)使用时需要导入包

定义视图函数:user_model_form_add(在函数中使用form = UserModelForm())

定义了一个 Django ModelFormUserModelForm,用于创建或编辑 UserInfo 模型的实例,表单包含 name、password、age、account、create_time、gender depart 字段。在 __init__ 方法中,为每个字段的 HTML 输入元素动态添加了 class="form-control" placeholder 属性,以便使用 Bootstrap 样式并显示字段标签作为占位符。user_model_form_add 视图函数处理 GET 和 POST 请求:当用户访问页面时(GET 请求),渲染一个空表单;当用户提交表单时(POST 请求),验证表单数据,如果数据有效则保存到数据库并重定向到 /user/list 页面,如果数据无效则打印错误信息(用于调试)。

  • 表单定义:通过 ModelForm 快速生成与模型关联的表单,并自定义字段的 HTML 属性。

  • 视图处理:处理用户请求,显示空表单或验证并保存提交的数据,最后重定向或返回错误信息。

注意:form.save() 会将数据保存到数据库中,这个数据库就是我们在UserModelForm中定义的model = models.UserInfo,即UserInfo表

from django.shortcuts import render,redirect
from employees import models
from django import formsclass UserModelForm(forms.ModelForm):class Meta:model = models.UserInfofields = ["name","password","age", "account", "create_time", "gender", "depart"]def __init__(self, *args, **kwargs):# 调用父类的初始化方法super().__init__(*args, **kwargs)# 遍历表单中的所有字段for name, field in self.fields.items():# 为每个字段的 widget 添加 HTML 属性field.widget.attrs = {"class": "form-control",  # 添加 Bootstrap 样式"placeholder": field.label  # 设置占位符为字段的标签}def user_model_form_add(request):# 处理 GET 请求:显示空表单if request.method == 'GET':form = UserModelForm()  # 创建一个空的 UserModelForm 实例# 渲染模板,并将表单对象传递给模板return render(request, 'user_model_form_add.html', {"form": form})# 处理 POST 请求:提交表单数据form = UserModelForm(data=request.POST)# 验证表单数据是否有效if form.is_valid():# 如果数据有效,保存表单数据到数据库form.save()return redirect("/user/list")  # 重定向到用户列表页面else:# 如果数据无效,打印错误信息(用于调试)print(form.errors)

user_model_form_add.html 使用传递过来的数据 

完整代码

{% extends 'layout.html' %}{% block content %}
<div class="container"><div class="c1"><a class="btn btn-success" href="/user/add">新建用户</a></div><div class="c1"><a class="btn btn-success" href="/user/model/form/add">新建用户ModelForm</a></div><div class="card c1"><div class="card-header">新建用户</div><div class="card-body"><form method="post">{% csrf_token %}{% for field in form%}<div class="form-label"><label>{{ field.label }}</label>{{ field }}</div>{% endfor %}<button type="submit" class="btn btn-primary">提交</button></form></div></div></div>
{% endblock %}

实现效果

 输入数据,提交

 添加成功

3.校验错误信息提示 

上面编写的错误输出只是测试,我想直接在网页上显示错误提示,这样更直观,代码修改如下

def user_model_form_add(request):# 处理 GET 请求:显示空表单if request.method == 'GET':form = UserModelForm()  # 创建一个空的 UserModelForm 实例# 渲染模板,并将表单对象传递给模板return render(request, 'user_model_form_add.html', {"form": form})# 处理 POST 请求:提交表单数据form = UserModelForm(data=request.POST)# 验证表单数据是否有效if form.is_valid():# 如果数据有效,保存表单数据到数据库form.save()return redirect("/user/list")  # 重定向到用户列表页面else:# 校验失败,在页面上显示错误信息return render(request, 'user_model_form_add.html', {"form": form})

user_model_form_add.html增加这一行

<span style="color: red;">{{ field.errors.0 }}</span>

效果如下,出现提示

上面的是浏览器做的校验,我们想自己校验提示,增加一个:novalidate

效果如下

我想对都写字段增加限制,Django会自动检查,例如

重写name和password字段,设置最小长度和标签,如果用户输入的长度不足,Django 会自动显示错误提示。

效果

更复杂的写法

注意导入对应的库 

from django.shortcuts import render,redirect
from employees import models
from django import forms
from django.core.validators import MinLengthValidator, RegexValidatorclass UserModelForm(forms.ModelForm):name = forms.CharField(min_length=3,label="用户名")password = forms.CharField(label="密码",widget=forms.PasswordInput(),validators=[MinLengthValidator(6, message="密码长度不能少于 6 个字符。"),RegexValidator(regex=r'^(?=.*\d)(?=.*[a-zA-Z]).{6,20}$',message="密码必须包含字母和数字,且长度为 6-20 个字符。")])class Meta:model = models.UserInfofields = ["name","password","age", "account", "create_time", "gender", "depart"]def __init__(self, *args, **kwargs):# 调用父类的初始化方法super().__init__(*args, **kwargs)# 遍历表单中的所有字段for name, field in self.fields.items():# 为每个字段的 widget 添加 HTML 属性field.widget.attrs = {"class": "form-control",  # 添加 Bootstrap 样式"placeholder": field.label  # 设置占位符为字段的标签}

效果

 

如果想修改提示变成中文,例如

修改如下

效果

学习:【最新Python的web开发全家桶(django+前端+数据库)-哔哩哔哩】 https://b23.tv/hSTu5xi 

http://www.ds6.com.cn/news/44632.html

相关文章:

  • 树形菜单的网站代码网站建设seo优化培训
  • 织梦做视频网站可以吗百度关键词在线优化
  • 新楼盘网站模板十大营销策略
  • 做们作业网站郑州厉害的seo顾问
  • 做网站代理需要办什么执照合肥百度搜索优化
  • 怎么寻找做有益做网站的客户长沙建站工作室
  • 邢台市做网站百度一下首页登录入口
  • wordpress next page免费网站seo诊断
  • 做移动网站多少钱石家庄seo推广公司
  • 沈阳大型网站制作公司国内最新新闻
  • 不用ftp做网站百度网盘客户端
  • 抚州市做棋牌网站太原网络推广公司
  • 杭州外贸网站建设公司申跃网站不收录怎么办
  • 专门做电商的招聘网站南宁网络推广培训机构
  • phpcms做的网站苹果cms永久免费建站程序
  • 设计师网站十大网站排名河南今日头条新闻最新
  • 网站建设使用的工具黑帽seo培训
  • 做的网站打印全乱掉了简述获得友情链接的途径
  • 怎么免费做网站教程自然搜索优化
  • 做app做网站从何学起好的seo网站
  • 网站建设客服工作搜索引擎推广有哪些
  • 长沙协会网站设计专业服务怎么做网页
  • 网站建设wesnowsat芜湖网络营销公司
  • 北京好的网站设计公司网站域名注册
  • 凡科 wordpress台州关键词优化推荐
  • 网络公司做网站后交代给客户什么360搜索网址是多少
  • 重庆学校网站建设武汉seo优化顾问
  • 做药品的b2b网站重庆网站排名
  • 江门网页模板建站重庆百度推广的代理商
  • 重庆企业建站模板免费个人网站制作