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网络编程之UDP通信实例(含服务器端、客户端、UDP广播例子)
Apr 25 Python
pycharm 使用心得(三)Hello world!
Jun 05 Python
简单介绍Python中的try和finally和with方法
May 05 Python
解决Python2.7读写文件中的中文乱码问题
Apr 12 Python
解决django后台样式丢失,css资源加载失败的问题
Jun 11 Python
Python字符串大小写转换拼接删除空白
Sep 19 Python
在python3中实现更新界面
Feb 21 Python
Python自动化操作实现图例绘制
Jul 09 Python
Python如何进行时间处理
Aug 06 Python
python爬取企查查企业信息之selenium自动模拟登录企查查
Apr 08 Python
在python中实现导入一个需要传参的模块
May 12 Python
python3+PyQt5+Qt Designer实现界面可视化
Jun 10 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
require(),include(),require_once()和include_once()区别
2008/03/27 PHP
讲解WordPress中用于获取评论模板和搜索表单的PHP函数
2015/12/28 PHP
Javascript里使用Dom操作Xml
2006/09/20 Javascript
一个小型js框架myJSFrame附API使用帮助
2008/06/28 Javascript
javascript基础知识大集锦(二) 推荐收藏
2011/01/13 Javascript
javascript 延迟加载技术(lazyload)简单实现
2011/01/17 Javascript
IE8提示Invalid procedure call or argument 异常的解决方法
2012/09/30 Javascript
Javascript与jQuery方法的隐藏与显示
2015/01/19 Javascript
angularJS 中$attrs方法使用指南
2015/02/09 Javascript
jQuery+html5+css3实现圆角无刷新表单带输入验证功能代码
2015/08/21 Javascript
php利用curl获取远程图片实现方法
2015/10/26 Javascript
js HTML5 Canvas绘制转盘抽奖
2020/09/13 Javascript
老生常谈javascript变量的命名规范和注释
2016/09/29 Javascript
微信小程序实现跑马灯效果完整代码(附效果图)
2018/05/30 Javascript
Vue2 轮播图slide组件实例代码
2018/05/31 Javascript
分析python服务器拒绝服务攻击代码
2014/01/16 Python
python爬虫入门教程--优雅的HTTP库requests(二)
2017/05/25 Python
Django模板变量如何传递给外部js调用的方法小结
2017/07/24 Python
python正则表达式面试题解答
2020/04/28 Python
python list删除元素时要注意的坑点分享
2018/04/18 Python
python检测文件夹变化,并拷贝有更新的文件到对应目录的方法
2018/10/17 Python
Python 2/3下处理cjk编码的zip文件的方法
2019/04/26 Python
Python的互斥锁与信号量详解
2019/09/12 Python
Python字符串格式化输出代码实例
2019/11/22 Python
HTML5之SVG 2D入门10—滤镜的定义及使用
2013/01/30 HTML / CSS
全球最大的网上自行车商店:Chain Reaction Cycles
2016/12/02 全球购物
英国可持续奢侈品包包品牌:Elvis & Kresse
2018/08/05 全球购物
日本乐天官方海外转运服务:Rakuten Global Express
2018/11/30 全球购物
伦敦一家领先的精品零售商:IRIS Fashion
2019/05/24 全球购物
毕业生个人的自我评价优秀范文
2013/10/03 职场文书
资源环境与城市管理专业推荐信
2013/11/30 职场文书
职业规划书如何设计?
2014/01/09 职场文书
小学生一分钟演讲稿
2014/08/26 职场文书
幼儿园门卫安全责任书
2015/05/08 职场文书
python实现网络五子棋
2021/04/11 Python
MySQL运行报错:“Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggre”解决方法
2022/06/14 MySQL