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制作获取网站目录的图形化程序
May 04 Python
python访问抓取网页常用命令总结
Apr 11 Python
Python对字符串实现去重操作的方法示例
Aug 11 Python
python中Apriori算法实现讲解
Dec 10 Python
Python DataFrame 设置输出不显示index(索引)值的方法
Jun 07 Python
Python使用pyautogui模块实现自动化鼠标和键盘操作示例
Sep 04 Python
django表单的Widgets使用详解
Jul 22 Python
Python socket 套接字实现通信详解
Aug 27 Python
如何基于python实现画不同品种的樱花树
Jan 03 Python
Python turtle画图库&amp;&amp;画姓名实例
Jan 19 Python
在pycharm中实现删除bookmark
Feb 14 Python
OpenCV灰度化之后图片为绿色的解决
Dec 01 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
php5 pdo新改动加载注意事项
2008/09/11 PHP
PHP导入Excel到MySQL的方法
2011/04/23 PHP
PHP读取网页文件内容的实现代码(fopen,curl等)
2011/06/23 PHP
php数组删除元素示例
2014/03/21 PHP
PHP实现的简单日历类
2014/11/29 PHP
Swoole源码中如何查询Websocket的连接问题详解
2020/08/30 PHP
PHP内存溢出优化代码详解
2021/02/26 PHP
WEB页子窗口(showModalDialog和showModelessDialog)使用说明
2009/10/25 Javascript
23个超流行的jQuery相册插件整理分享
2011/04/25 Javascript
JavaScript NaN和Infinity特殊值 [译]
2012/09/20 Javascript
jquery实现点击TreeView文本父节点展开/折叠子节点
2013/01/10 Javascript
鼠标拖动实现DIV排序示例代码
2013/10/14 Javascript
jquery制作搜狐快站页面效果示例分享
2014/02/21 Javascript
一行命令搞定node.js 版本升级
2014/07/20 Javascript
Bootstrap Table使用整理(一)
2017/06/09 Javascript
JavaScript树的深度优先遍历和广度优先遍历算法示例
2018/07/30 Javascript
详解vue-cli 脚手架 安装
2019/04/16 Javascript
no-vnc和node.js实现web远程桌面的完整步骤
2019/08/11 Javascript
解决layui laydate 时间控件一闪而过的问题
2019/09/28 Javascript
[03:51]吞吞映像 每周精彩击杀top10第二弹
2014/06/25 DOTA
Python 抓取动态网页内容方案详解
2014/12/25 Python
用Python编写一个简单的俄罗斯方块游戏的教程
2015/04/03 Python
python中xrange用法分析
2015/04/15 Python
使用wxPython获取系统剪贴板中的数据的教程
2015/05/06 Python
Python使用win32com实现的模拟浏览器功能示例
2017/07/13 Python
Tensorflow中的dropout的使用方法
2020/03/13 Python
python3.6使用SMTP协议发送邮件
2020/05/20 Python
python如何输出反斜杠
2020/06/18 Python
使用keras时input_shape的维度表示问题说明
2020/06/29 Python
会计系个人求职信范文分享
2013/12/20 职场文书
敬老院院长事迹材料
2014/05/21 职场文书
药剂专业求职信
2014/06/20 职场文书
审美与表现自我评价
2015/03/09 职场文书
教师远程培训心得体会
2016/01/09 职场文书
创业计划书之冷饮店
2019/09/27 职场文书
Python 发送SMTP邮件的简单教程
2021/06/24 Python