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 基础教程之Map使用方法
Jan 17 Python
Python语言描述KNN算法与Kd树
Dec 13 Python
mac下pycharm设置python版本的图文教程
Jun 13 Python
python画图的函数用法以及技巧
Jun 28 Python
python opencv鼠标事件实现画框圈定目标获取坐标信息
Apr 18 Python
Python字符串处理的8招秘籍(小结)
Aug 13 Python
python3调用windows dos命令的例子
Aug 14 Python
Python实现Word表格转成Excel表格的示例代码
Apr 16 Python
python3中datetime库,time库以及pandas中的时间函数区别与详解
Apr 16 Python
python wsgiref源码解析
Feb 06 Python
Python 循环读取数据内存不足的解决方案
May 25 Python
Python语法学习之进程的创建与常用方法详解
Apr 08 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
php数组函数序列之array_key_exists() - 查找数组键名是否存在
2011/10/29 PHP
解析php php_openssl.dll的作用
2013/07/01 PHP
非常全面的php日期时间运算汇总
2015/11/04 PHP
使用PHP uniqid函数生成唯一ID
2015/11/18 PHP
php生成二维码图片方法汇总
2016/12/17 PHP
做网页的一些技巧
2007/02/01 Javascript
Javascript之文件操作
2007/03/07 Javascript
表单项的name命名为submit、reset引起的问题
2007/12/22 Javascript
javascript数组的扩展实现代码集合
2008/06/01 Javascript
jquery div 居中技巧应用介绍
2012/11/24 Javascript
jquery中animate动画积累的解决方法
2013/10/05 Javascript
通过url查找a元素应用案例
2014/04/29 Javascript
jQuery实现指定内容滚动同时左侧或其它地方不滚动的方法
2015/08/08 Javascript
JavaScript实现的多种鼠标拖放效果
2015/11/03 Javascript
JS组件Bootstrap Table表格多行拖拽效果实现代码
2015/12/08 Javascript
D3.js实现雷达图的方法详解
2016/09/22 Javascript
node.js版本管理工具n无效的原理和解决方法
2016/11/24 Javascript
基于JavaScript实现屏幕滚动效果
2017/01/18 Javascript
node学习记录之搭建web服务器教程
2017/02/16 Javascript
jquery submit()不能提交表单的解决方法
2017/04/24 jQuery
JS库之Highlight.js的用法详解
2017/09/13 Javascript
详解vue-property-decorator使用手册
2019/07/29 Javascript
layui将table转化表单显示的方法(即table.render转为表单展示)
2019/09/24 Javascript
微信小程序实现吸顶效果
2020/01/08 Javascript
element-ui封装一个Table模板组件的示例
2021/01/04 Javascript
python处理图片之PIL模块简单使用方法
2015/05/11 Python
idea创建springMVC框架和配置小文件的教程图解
2018/09/18 Python
pyshp创建shp点文件的方法
2018/12/31 Python
ffmpeg+Python实现B站MP4格式音频与视频的合并示例代码
2020/10/21 Python
应届生求职信范文
2014/05/26 职场文书
交通事故调解协议书
2015/05/20 职场文书
身份证丢失证明
2015/06/19 职场文书
小学班主任教育随笔
2015/08/15 职场文书
中学校园广播稿
2015/08/18 职场文书
python turtle绘图命令及案例
2021/11/23 Python
Javascript中async与await的捕捉错误详解
2022/03/03 Javascript