django mysql 表单_Django---form表单提交数据到数据库(普通方法+Django的form类)

目标:

①、初始form的简单应用

②、使用Django的form组件完成新增一个帖子

方法一:普通方法

1、前端表单代码

{%csrf_token%}

提交

2、view中新增一个视图方法:

#新增一个帖子

defadd(request):

article_title=request.POST.get('article_title',"");

article_prief=request.POST.get('article_prief',"");

article_content= request.POST.get('article_content', "");

add_article=Article(article_title=article_title,article_prief_content=article_prief,article_content=article_content);--------->这是插入一篇帖子的方法

add_article.save();return render(request,'add.html',{'article_title':article_title,'article_prief':article_prief,'article_content': article_content,

})

3、调试结果:正常

be04605c649538745af935d215e0e286.png

方法二:使用form表单(建议!!!)

使用form表单的意义,可以对表单进行自动校验,包括各项数据均可以在表单类中定义好,客户端只需要渲染就可以了

1、新建一个forms.py的python文件

from django importforms-------->必须引入

from django import forms

class login_form(forms.Form):

#新增一个form类,在form中加入元素,比如下面,加入两个字符串,客户端的label名称定义,输入的最大值(指定后无法输入更多字符),

输入的最小值(指定后若少于该值会提示),指定错误信息(这是一个字典类型)

username=forms.CharField(label='用户名',min_length=2,max_length=5,error_messages={"required":"用户名不能为空"});

#即使什么都没有设置,它也已经帮你设置了默认不能为空

pwd=forms.CharField(label="密码");

2、在view中新增一个视图函数

deflogin_2(request):

form_obg=forms.login_form();//必须先实例化表单if request.method=="POST":

form_obg=forms.login_form(request.POST);---->将前端提交上来的字段加入表单ifform_obg.is_valid():---------------->通过表单中定义的规则对表单的所有数据进行检查,如果检查通过,说明验证通过return HttpResponse("登陆成功");return render(request,"login2.html",{'form_obj':form_obg});---------->最终都要返回表单字段

3、前端html

注册2

{% csrf_token %}

{{ form_obj.username.label }}---------->bootstrap的label有一个for属性{{ form_obj.username }} {{ form_obj.username.errors.0 }}----------------->这个是文本框(就是charField,文本域),输入的规则后台指定,错误

{{ form_obj.pwd.label }}{{ form_obj.pwd }} {{ form_obj.pwd.errors.0 }}

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值