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 打印对象的所有属性值的方法
Sep 11 Python
python 3利用BeautifulSoup抓取div标签的方法示例
May 28 Python
python检测主机的连通性并记录到文件的实例
Jun 21 Python
Python实现压缩文件夹与解压缩zip文件的方法
Sep 01 Python
解决python3读取Python2存储的pickle文件问题
Oct 25 Python
详解Python爬取并下载《电影天堂》3千多部电影
Apr 26 Python
PYQT5设置textEdit自动滚屏的方法
Jun 14 Python
python 杀死自身进程的实现方法
Jul 01 Python
Python Tkinter Entry和Text的添加与使用详解
Mar 04 Python
浅析Python面向对象编程
Jul 10 Python
如何用PyPy让你的Python代码运行得更快
Dec 02 Python
基于python定位棋子位置及识别棋子颜色
Jul 26 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中nowdoc和heredoc使用需要注意的一点
2014/03/21 PHP
php生成短域名函数
2015/03/23 PHP
php实现微信公众平台账号自定义菜单类
2015/10/11 PHP
PHP简单获取网站百度搜索和搜狗搜索收录量的方法
2016/08/23 PHP
PHP实现基于回溯法求解迷宫问题的方法详解
2017/08/17 PHP
php使用redis的几种常见操作方式和用法示例
2020/02/20 PHP
css图片自适应大小
2007/11/28 Javascript
javascript的onchange事件与jQuery的change()方法比较
2009/09/28 Javascript
基于jquery的让textarea自适应高度的插件
2010/08/03 Javascript
JSON为什么那样红为什么要用json(另有洞天)
2012/12/26 Javascript
Tab切换组件(选项卡功能)实例代码
2013/11/21 Javascript
浅谈 jQuery 事件源码定位问题
2014/06/18 Javascript
深入理解JavaScript系列(33):设计模式之策略模式详解
2015/03/03 Javascript
JavaScript自定义等待wait函数实例分析
2015/03/23 Javascript
ECMAScript6新增值比较函数Object.is
2015/06/12 Javascript
常见的javascript跨域通信方法
2015/12/31 Javascript
MUI 解决动态列表页图片懒加载再次加载不成功的bug问题
2017/04/13 Javascript
laydate日历控件使用方法详解
2017/11/20 Javascript
webpack vue项目开发环境局域网访问方法
2018/03/20 Javascript
vue和webpack项目构建过程常用的npm命令详解
2018/06/15 Javascript
vue2 v-model/v-text 中使用过滤器的方法示例
2019/05/09 Javascript
[01:27:43]VGJ.S vs TNC Supermajor 败者组 BO3 第三场 6.6
2018/06/07 DOTA
python实现文件名批量替换和内容替换
2014/03/20 Python
python执行shell获取硬件参数写入mysql的方法
2014/12/29 Python
Python实现根据日期获取当天凌晨时间戳的方法示例
2019/04/09 Python
python实现beta分布概率密度函数的方法
2019/07/08 Python
Python中*args和**kwargs的区别详解
2019/09/17 Python
如何基于Python批量下载音乐
2019/11/11 Python
pygame库实现移动底座弹球小游戏
2020/04/14 Python
Pytorch使用PIL和Numpy将单张图片转为Pytorch张量方式
2020/05/25 Python
春秋航空官方网站:Spring Airlines
2017/09/27 全球购物
构造方法和其他方法的区别
2016/04/26 面试题
怎么写好自荐信
2013/10/30 职场文书
党建目标管理责任书
2014/07/25 职场文书
律师函格式范本
2015/05/27 职场文书
《角的初步认识》教学反思
2016/02/17 职场文书