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 28 Python
浅谈scrapy 的基本命令介绍
Jun 13 Python
python中利用await关键字如何等待Future对象完成详解
Sep 07 Python
用python与文件进行交互的方法
Mar 01 Python
对Python正则匹配IP、Url、Mail的方法详解
Dec 25 Python
python实现将多个文件分配到多个文件夹的方法
Jan 07 Python
Django 过滤器汇总及自定义过滤器使用详解
Jul 19 Python
基于python的itchat库实现微信聊天机器人(推荐)
Oct 29 Python
使用PyOpenGL绘制三维坐标系实例
Dec 24 Python
Python ATM功能实现代码实例
Mar 19 Python
Python socket服务常用操作代码实例
Jun 22 Python
python使用dlib进行人脸检测和关键点的示例
Dec 05 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实现的IMEI限制的短信验证码发送类
2015/05/05 PHP
php 获取文件行数的方法总结
2016/10/11 PHP
php安装扩展mysqli的实现步骤及报错解决办法
2017/09/23 PHP
PHP7 标准库修改
2021/03/09 PHP
使用Apache的rewrite
2021/03/09 Servers
JS实现图片翻书效果示例代码
2013/09/09 Javascript
浅析JavaScript基本类型与引用类型
2014/05/28 Javascript
JQuery中serialize() 序列化
2015/03/13 Javascript
浅谈jQuery中的事件
2015/03/23 Javascript
JQuery radio(单选按钮)操作方法汇总
2015/04/15 Javascript
js实现新浪微博首页效果
2015/10/16 Javascript
开启Javascript中apply、call、bind的用法之旅模式
2015/10/28 Javascript
javascript类型系统 Window对象学习笔记
2016/01/07 Javascript
javascript检测flash插件是否被禁用的方法
2016/01/14 Javascript
使用Bootstrap框架制作查询页面的界面实例代码
2016/05/27 Javascript
easyui messager alert 三秒后自动关闭提示的实例
2016/11/07 Javascript
Vue + Webpack + Vue-loader学习教程之功能介绍篇
2017/03/14 Javascript
JS加密插件CryptoJS实现的DES加密示例
2018/08/16 Javascript
用Vue.js在浏览器中实现裁剪图像功能
2019/06/18 Javascript
浅谈JavaScript中你可能不知道URL构造函数的属性
2020/07/13 Javascript
[48:48]VGJ.T vs Liquid 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
python清除指定目录内所有文件中script的方法
2015/06/30 Python
Python实现视频下载功能
2017/03/14 Python
python递归全排列实现方法
2018/08/18 Python
python实现word文档批量转成自定义格式的excel文档的思路及实例代码
2020/02/21 Python
python 使用cx-freeze打包程序的实现
2020/03/14 Python
keras的backend 设置 tensorflow,theano操作
2020/06/30 Python
基于Python实现天天酷跑功能
2021/01/06 Python
HTML5 drag和drop具体使用详解
2021/01/18 HTML / CSS
绢花、人造花和人造花卉:BLOOM
2019/08/07 全球购物
美国牙科折扣计划:DentalPlans.com
2019/08/26 全球购物
银行实习自我鉴定
2013/10/12 职场文书
高中生家长会演讲稿
2014/01/14 职场文书
义务教育学校标准化建设汇报材料
2014/08/16 职场文书
党员学习中共十八大报告思想汇报
2014/09/15 职场文书
2015年南京大屠杀纪念日活动总结
2015/03/24 职场文书