目标:
①、初始form的简单应用
②、使用Django的form组件完成新增一个帖子
方法一:普通方法
1、前端表单代码
提交
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、调试结果:正常
方法二:使用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 }}