Django 构建模板form表单的两种方法
通常情况下,我们想构建一张表单时会在模板文件login.html中写入
<form action="/your-name/" method="post">
<label for="your_name">Your name: </label>
<input id="your_name" type="text" name="your_name" value="{{ current_name }}">
<input type="submit" value="OK">
</form>
下面说说我们在使用django是如何在模板文件中生成form表单:
1、自定义显示的字段:
假如我们要在模板中生成一张含有username和content的表单
在app下新建forms.py(/users/forms.py)
from django import forms class MessageGetForm(forms.Form):
username = forms.CharField(label='用户', max_length=5) #max_length 浏览器限制用户输入的字符串长度
content = forms.CharField(label='留言', max_length=100)
在视图文件中引用上边表单字段并传递给模板(users/view.py)
from apps.users.forms import MessageGetForm class MessageView(View):
def get(self, request, *args, **kwargs):
message = MessageGetForm() return render(request, "message.html", {"message": message})
在模板文件调用(message.html)
<form action="" method="get">
{{ message }}
</form>
渲染后的页面效果

2、将数据表的字段映射到模板文件form表单
数据表courses_lesson字段如下

在app下新建forms.py(/users/forms.py)
#此处我们假设你的项目文件courses/models.py内含有Lesson类
from apps.courses.models import Lesson
from django.forms import ModelForm class CoursesLessonForm(ModelForm):
class Meta:
model = Lesson
fields = ['add_time', 'name', 'learn_times'] #要显示的字段
在视图文件中引用上边表单字段并传递给模板(users/view.py)
from apps.users.forms import CoursesLessonForm class MessageView(View):
def get(self, request, *args, **kwargs):
message = CoursesLessonForm() return render(request, "message.html", {"message": message})
在模板文件调用(message.html)
<form action="" method="get">
{{ message }}
</form>
页面效果图:

所有表单类都作为 django.forms.Form 或者 django.forms.ModelForm 的子类来创建。您可以把 ModelForm 想象成 Form 的子类。实际上 Form 和 ModelForm 从(私有) BaseForm 类继承了通用功能,但是这个实现细节不怎么重要。
Django 构建模板form表单的两种方法的更多相关文章
- 使用js提交form表单的两种方法
提交form表单的时候瑶族一些简单的验证,验证完后才能提交,避免无效提交. 1.当输入用户名和密码为空的时候,需要判断.这时候就用到了校验用户名和密码,这个需要在前端页面写:有两种方法,一种是用sub ...
- form表单的两种提交方式,submit和button的用法
1.当输入用户名和密码为空的时候,需要判断.这时候就用到了校验用户名和密码,这个需要在jsp的前端页面写:有两种方法,一种是用submit提交.一种是用button提交.方法一: 在jsp的前端页面的 ...
- 触发form表单的两种提交方式,submit和button的用法
1.当输入用户名和密码为空的时候,需要判断.这时候就用到了校验用户名和密码,这个需要在jsp的前端页面写:有两种方法,一种是用submit提交.一种是用button提交. 方法一: 在jsp的前端页面 ...
- 【转载】form表单的两种提交方式,submit和button的用法
1.当输入用户名和密码为空的时候,需要判断.这时候就用到了校验用户名和密码,这个需要在jsp的前端页面写:有两种方法,一种是用submit提交.一种是用button提交.方法一: 在jsp的前端页面的 ...
- Ajax提交Form表单的一种方法
待提交的表单 <form id="updatePublicKey" enctype="multipart/form-data"> <div c ...
- spring mvc 防止重复提交表单的两种方法,推荐第二种
第一种方法:判断session中保存的token 比较麻烦,每次在提交表单时都必须传入上次的token.而且当一个页面使用ajax时,多个表单提交就会有问题. 注解Token代码: package c ...
- jquery中ajax序列化提交form表单的几种方法。
一,ajax主流的方法 $.ajax({ type: 'post', url: 'your url', data: $("form").serialize(), success: ...
- Django组件之Form表单
一.Django中的Form表单介绍 我们之前在HTML页面中利用form表单向后端提交数据时,都会写一些获取用户输入的标签并且用form标签把它们包起来. 与此同时我们在好多场景下都需要对用户的输入 ...
- 第三百一十一节,Django框架,Form表单验证
第三百一十一节,Django框架,Form表单验证 表单提交 html <!DOCTYPE html> <html lang="en"> <head& ...
随机推荐
- HashMap的源码浅析
一.HashMap 的数据结构 Java7 及之前主要是"数组+链表",到了 Java8 之后,就变成了"数组+链表+红黑树". 二.Java7 源码浅析: 在 ...
- JavaScript编程入门
写在前面: 不管容易还是简单 总要尝试才知道答案 1.JavaScript初探 JavaScript:轻量级脚本语言,是可插入HTML页面的编程代码. 将JavaScript插入HTML页 ...
- 使用for循环疑难问题
接触js的基本语句之后,有一些疑难杂症在初期很难自己想出来,对我自己来说for输出三角形,倒三角行还有等腰三角形还是有点难度,所以记录一下,以便以后查找 倒三角,需要控制每行的输出个数,此处可以想象为 ...
- Spring_bean作用域
本篇介绍Spring Bean实例的作用范围,Spring Bean实例的作用范围由配置项scope限定.通过本篇的学习,可以达成如下目标. ● 应用scope配置项配置Bean的作用域 ● 应用单例 ...
- Msql 给结果拼接字符串
SELECT CONCAT("内容:",info)AS info FROM 表名;
- 八皇后问题求解java(回溯算法)
八皇后问题 八皇后问题,是一个古老而著名的问题,是回溯算法的典型案例.该问题是国际西洋棋棋手马克斯·贝瑟尔于1848年提出:在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处 ...
- [wordpress使用]003_添加新文章
当WordPress前面的工作准备的差不多,没什么大问题时,就可以开始为你的博客添加文章,让博客的内容变得更加丰富.既然你已经开始了这个博客,那么就说明你已经有一个明确的方向,知道自己到底要写那些内容 ...
- [PHP自动化-进阶]003.CURL处理Https请求访问
引言:继前文<模拟登录并采集数据>,<模拟登录带有验证码的网站>,大家对CURL基本上已经有了认识,这一讲简单的说一下请求Https. 在很多的站点,如TalkingData, ...
- VC程序设计--文字输出方法与字体示例
在用户窗口上输出一个扇形,并在扇面竖向输出一首唐诗.本例使用绝对定位确定输出文字的位置,并采用多种自定义字体输出文字. // poemDemo.cpp : 定义应用程序的入口点. // #includ ...
- Alpha冲刺——4.30
这个作业属于哪个课程 软件工程 这个作业要求在哪里 团队作业第五次--Alpha冲刺 这个作业的目标 Alpha冲刺 作业正文 正文 github链接 项目地址 其他参考文献 无 一.会议内容 1.规 ...