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变量作用范围实例分析
Jul 07 Python
pandas series序列转化为星期几的实例
Apr 11 Python
Python单元测试实例详解
May 25 Python
Python设计模式之命令模式原理与用法实例分析
Jan 11 Python
Python函数定义及传参方式详解(4种)
Mar 18 Python
python 求1-100之间的奇数或者偶数之和的实例
Jun 11 Python
python3.4+pycharm 环境安装及使用方法
Jun 13 Python
django框架模板中定义变量(set variable in django template)的方法分析
Jun 24 Python
opencv-python 读取图像并转换颜色空间实例
Dec 09 Python
Jupyter Notebook远程登录及密码设置操作
Apr 10 Python
用Python 爬取猫眼电影数据分析《无名之辈》
Jul 24 Python
Django3中的自定义用户模型实例详解
Aug 23 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获取谷歌PR值算法,附上php查询PR值代码示例
2011/12/25 PHP
smarty模板引擎中变量及变量修饰器用法实例
2015/01/22 PHP
php实现猴子选大王问题算法实例
2015/04/20 PHP
php获取从百度、谷歌等搜索引擎进入网站关键词的方法
2015/07/08 PHP
php使用curl伪造浏览器访问操作示例
2019/09/30 PHP
Code: write(s,d) 输出连续字符串
2007/08/19 Javascript
javascript String 对象
2008/04/25 Javascript
jquery创建div 实现代码
2009/04/27 Javascript
jQuery DIV弹出效果实现代码
2009/07/03 Javascript
js取消单选按钮选中示例代码
2013/11/14 Javascript
jquery each的几种常用的使用方法示例
2014/01/21 Javascript
让table变成exls的示例代码
2014/03/24 Javascript
Javascript中arguments对象详解
2014/10/22 Javascript
基于javascript实现图片左右切换效果
2016/01/25 Javascript
js验证框架实现代码分享
2016/05/18 Javascript
web前端开发upload上传头像js示例代码
2016/10/22 Javascript
js 轮播效果实例分享
2016/12/28 Javascript
js统计页面上每个标签的数量实例代码
2018/05/29 Javascript
vue项目实现表单登录页保存账号和密码到cookie功能
2018/08/31 Javascript
vue实现Excel文件的上传与下载功能的两种方式
2019/06/28 Javascript
JavaScript实现好看的跟随彩色气泡效果
2020/02/06 Javascript
解决Echarts 显示隐藏后宽度高度变小的问题
2020/07/19 Javascript
Python交换变量
2008/09/06 Python
Python使用Matplotlib实现雨点图动画效果的方法
2017/12/23 Python
python超时重新请求解决方案
2019/10/21 Python
办公室年终个人自我评价
2013/10/28 职场文书
关于廉洁的广播稿
2014/01/30 职场文书
《夜晚的实验》教学反思
2014/02/19 职场文书
小学模范班主任事迹材料
2014/05/13 职场文书
大学毕业生个人自荐书
2014/07/02 职场文书
售后服务承诺函格式
2015/01/21 职场文书
红旗渠导游词
2015/02/09 职场文书
聘任证明怎么写
2015/03/02 职场文书
2019预备党员转正申请书模板2篇!
2019/08/07 职场文书
Python道路车道线检测的实现
2021/06/27 Python
mysql5.7的安装及Navicate长久免费使用的实现过程
2021/11/17 MySQL