Django 构建模板form表单的两种方法


Posted in Python onJune 14, 2020

通常情况下,我们想构建一张表单时会在模板文件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>

渲染后的页面效果

Django 构建模板form表单的两种方法

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

数据表courses_lesson字段如下

Django 构建模板form表单的两种方法

在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 构建模板form表单的两种方法

所有表单类都作为 django.forms.Form 或者  django.forms.ModelForm 的子类来创建。您可以把  ModelForm 想象成  Form 的子类。实际上  Form 和  ModelForm 从(私有)  BaseForm 类继承了通用功能,但是这个实现细节不怎么重要。

到此这篇关于Django 构建模板form表单的两种方法的文章就介绍到这了,更多相关Django 构建模板form表单的两种方法内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python用字典统计单词或汉字词个数示例
Apr 22 Python
在Django的模型中添加自定义方法的示例
Jul 21 Python
Python制作爬虫采集小说
Oct 25 Python
Python实现字符串匹配算法代码示例
Dec 05 Python
python 递归深度优先搜索与广度优先搜索算法模拟实现
Oct 22 Python
pygame游戏之旅 调用按钮实现游戏开始功能
Nov 21 Python
详解python selenium 爬取网易云音乐歌单名
Mar 28 Python
python爬虫 urllib模块发起post请求过程解析
Aug 20 Python
python获取引用对象的个数方式
Dec 20 Python
python使用for...else跳出双层嵌套循环的方法实例
May 17 Python
python实现图片,视频人脸识别(dlib版)
Nov 18 Python
还在手动盖楼抽奖?教你用Python实现自动评论盖楼抽奖(一)
Jun 07 Python
Python Django搭建网站流程图解
Jun 13 #Python
Python xpath表达式如何实现数据处理
Jun 13 #Python
Python轻量级web框架bottle使用方法解析
Jun 13 #Python
PyInstaller运行原理及常用操作详解
Jun 13 #Python
Pandas缺失值2种处理方式代码实例
Jun 13 #Python
Python Django中间件使用原理及流程分析
Jun 13 #Python
Django QuerySet查询集原理及代码实例
Jun 13 #Python
You might like
攻克CakePHP系列二 表单数据显示
2008/10/22 PHP
phpcms模块开发之swfupload的使用介绍
2013/04/28 PHP
fix-ie5.js扩展在IE5下不能使用的几个方法
2007/08/20 Javascript
RGB颜色值转HTML十六进制(HEX)代码的JS函数
2009/04/25 Javascript
关于JavaScript中原型继承中的一点思考
2012/07/25 Javascript
jquery给图片添加鼠标经过时的边框效果
2013/11/12 Javascript
JQuery动画与特效实例分析
2015/02/02 Javascript
Javascript动态创建表格及删除行列的方法
2015/05/15 Javascript
一篇文章掌握RequireJS常用知识
2016/01/26 Javascript
jQuery中的一些常见方法小结(推荐)
2016/06/13 Javascript
JavaScript 对象详细整理总结
2016/09/29 Javascript
Javascript+CSS3实现进度条效果
2016/10/28 Javascript
bootstrap选项卡使用方法解析
2017/01/11 Javascript
jquery与js实现全选功能的区别
2017/06/11 jQuery
Javascript中this关键字指向问题的测试与详解
2017/08/11 Javascript
小程序如何构建骨架屏
2019/05/29 Javascript
简单了解Ajax表单序列化的实现方法
2019/06/14 Javascript
vue拖拽组件 vuedraggable API options实现盒子之间相互拖拽排序
2019/07/08 Javascript
基于vue实现简易打地鼠游戏
2020/08/21 Javascript
详解vue修改elementUI的分页组件视图没更新问题
2020/11/13 Javascript
基于vue-simple-uploader封装文件分片上传、秒传及断点续传的全局上传插件功能
2021/02/23 Vue.js
python比较两个列表是否相等的方法
2015/07/28 Python
Python实现查找匹配项作处理后再替换回去的方法
2017/06/10 Python
Python面向对象程序设计构造函数和析构函数用法分析
2019/04/12 Python
Python流行ORM框架sqlalchemy安装与使用教程
2019/06/04 Python
Spring Boot中使用IntelliJ IDEA插件EasyCode一键生成代码详细方法
2020/03/20 Python
基于CSS3实现的黑色个性导航菜单效果
2015/09/14 HTML / CSS
美国休闲服装品牌:J.Crew Factory
2017/03/04 全球购物
Capitol Lighting的1800lighting.com:住宅和商业照明
2019/04/10 全球购物
城管个人总结
2015/02/28 职场文书
小学教师师德师风承诺书
2015/04/28 职场文书
学校党员干部承诺书
2015/05/04 职场文书
大学生党课心得体会
2016/01/07 职场文书
2016党员干部反腐倡廉心得体会
2016/01/13 职场文书
干货:企业内部人才推荐奖励方案!
2019/07/09 职场文书
javascript拖曳互换div的位置实现示例
2021/06/28 Javascript