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中函数的调用与定义
Mar 14 Python
python下如何查询CS反恐精英的服务器信息
Jan 17 Python
使用Python对Access读写操作
Mar 30 Python
对python读取zip压缩文件里面的csv数据实例详解
Feb 08 Python
Python 20行简单实现有道在线翻译的详解
May 15 Python
Django框架设置cookies与获取cookies操作详解
May 27 Python
Python中@property的理解和使用示例
Jun 11 Python
python实现字符串完美拆分split()的方法
Jul 16 Python
python设置随机种子实例讲解
Sep 12 Python
python序列类型种类详解
Feb 26 Python
使用keras实现非线性回归(两种加激活函数的方式)
Jul 05 Python
Django + Taro 前后端分离项目实现企业微信登录功能
Apr 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
php 注释规范
2012/03/29 PHP
php实现概率性随机抽奖代码
2016/01/02 PHP
PHP中STDCLASS用法实例分析
2016/11/11 PHP
php实现的简单数据库操作Model类
2016/11/16 PHP
thinkphp5.0自定义验证规则使用方法
2017/11/16 PHP
js打开windows上的可执行文件示例
2014/05/27 Javascript
javascript实现移动端上的触屏拖拽功能
2016/03/04 Javascript
js实现旋转木马效果
2017/03/17 Javascript
微信小程序删除处理详解
2017/08/16 Javascript
vue项目中运用webpack动态配置打包多种环境域名的方法
2019/06/24 Javascript
vue 使用鼠标滚动加载数据的例子
2019/10/31 Javascript
vue data引入本地图片的两种方式小结
2019/11/13 Javascript
python pickle 和 shelve模块的用法
2013/09/16 Python
python中enumerate的用法实例解析
2014/08/18 Python
python解决Fedora解压zip时中文乱码的方法
2016/09/18 Python
python如何获取服务器硬件信息
2017/05/11 Python
关于python pyqt5安装失败问题的解决方法
2017/08/08 Python
python抓取文件夹的所有文件
2018/02/27 Python
如何使用Python 打印各种三角形
2019/06/28 Python
python实现网站微信登录的示例代码
2019/09/18 Python
python 3.8.3 安装配置图文教程
2020/05/21 Python
Dower & Hall官网:英国小众轻奢珠宝品牌
2019/01/31 全球购物
专注澳大利亚特产和新西兰特产的澳洲中文网:0061澳洲制造
2019/03/24 全球购物
汽车工程专业应届生求职信
2013/10/19 职场文书
大一期末自我鉴定
2013/12/13 职场文书
触摸春天教学反思
2014/02/03 职场文书
医院党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
离职报告格式
2014/11/04 职场文书
董事长岗位职责
2015/02/13 职场文书
工作保证书怎么写
2015/02/28 职场文书
2015年食品安全工作总结
2015/05/15 职场文书
怎样写家长意见
2015/06/04 职场文书
幼儿园秋季开学通知
2015/07/16 职场文书
七年级思品教学反思
2016/02/20 职场文书
感谢信的技巧及范例
2019/05/15 职场文书
Python基础之常用库常用方法整理
2021/04/30 Python