最浅显易懂的Django系列教程(34)-表单概述

《Django框架从入门到实战》目录 阅读详情

表单:

HTML中的表单:

单纯从前端的html来说,表单是用来提交数据给服务器的,不管后台的服务器用的是Django还是PHP语言还是其他语言。只要把input标签放在form标签中,然后再添加一个提交按钮,那么以后点击提交按钮,就可以将input标签中对应的值提交给服务器了。

Django中的表单:

Django中的表单丰富了传统的HTML语言中的表单。在Django中的表单,主要做以下两件事:

  1. 渲染表单模板。
  2. 表单验证数据是否合法。

Django中表单使用流程:

在讲解Django表单的具体每部分的细节之前。我们首先先来看下整体的使用流程。这里以一个做一个留言板为例。首先我们在后台服务器定义一个表单类,继承自django.forms.Form。示例代码如下:

# forms.py
class MessageBoardForm(forms.Form):
    title = forms.CharField(max_length=3,label='标题',min_length=2,error_messages={"min_length":'标题字符段不符合要求!'})
    content = forms.CharField(widget=forms.Textarea,label='内容')
    email = forms.EmailField(label='邮箱')
    reply = forms.BooleanField(required=False,label='回复')

然后在视图中,根据是GET还是POST请求来做相应的操作。如果是GET请求,那么返回一个空的表单,如果是POST请求,那么将提交上来的数据进行校验。示例代码如下:

# views.py
class IndexView(View):
    def get(self,request):
        form = MessageBoardForm()
        return render(request,'index.html',{'form':form})

    def post(self,request):
        form = MessageBoardForm(request.POST)
        if form.is_valid():
            title = form.cleaned_data.get('title')
            content = form.cleaned_data.get('content')
            email = form.cleaned_data.get('email')
            reply = form.cleaned_data.get('reply')
            return HttpResponse('success')
        else:
            print(form.errors)
            return HttpResponse('fail')

在使用GET请求的时候,我们传了一个form给模板,那么以后模板就可以使用form来生成一个表单的html代码。在使用POST请求的时候,我们根据前端上传上来的数据,构建一个新的表单,这个表单是用来验证数据是否合法的,如果数据都验证通过了,那么我们可以通过cleaned_data来获取相应的数据。在模板中渲染表单的HTML代码如下:

<form action="" method="post">
    <table>
        {{ form.as_table }}
        <tr>
            <td></td>
            <td><input type="submit" value="提交"></td>
        </tr>
    </table>
</form>

我们在最外面给了一个form标签,然后在里面使用了table标签来进行美化,在使用form对象渲染的时候,使用的是table的方式,当然还可以使用ul的方式(as_ul),也可以使用p标签的方式(as_p),并且在后面我们还加上了一个提交按钮。这样就可以生成一个表单了

看文章不过瘾?还有免费的视频教程,让你学起来更轻松:Django零基础到项目实战

SAP 错误消息调试之七种武器:让所有的错误消息都能被定位 目录 长生剑 - SAPGUI Where Used List 碧玉刀 - ABAP调试器观察点 霸王枪 - ABAP调试器动态断点 多情环 - ABAP代码静态扫描 孔雀翎 - SAT 离别钩 - ST05 拳头 - 迷之方法??? Jerry在2018年开始用中文在微信公众号平台上写作之前,在SAP官方社区上总共写了639篇英文博客。 其中有一篇写于2013年介绍ABAP调试技巧的博客: 阅读详情

相关推荐

手把手教你用VCS+Verdi在Linux下仿真蜂鸟E203 RISC-V核(附波形调试技巧)

本文详细介绍了在Linux环境下使用VCS和Verdi工具链对蜂鸟E203 RISC-V核进行仿真验证的完整流程。从环境配置、工程结构解析到VCS编译优化和Verdi波形分析技巧,提供了实战性强的调试方法和性能优化策略,帮助工程师高效完成数字IC验证工作。

weixin_42531163的博客 415

最浅显易懂的Django系列教程(6)-URL与视图

URL分发器 视图: 视图一般都写在app的views.py中。并且视图的第一个参数永远都是request(一个HttpRequest)对象。这个对象存储了请求过来的所有信息,包括携带的参数以及一些头部信息等。在视图中,一般是完成逻辑相关的操作。比如这个请求是添加一篇博客,那么可以通过request来接收到这些数据,然后存储到数据库中,最后再把执行的结果返回给浏览器。视图函数的返回结果必须是HttpResponseBase对象或者子类的对象。示例代码如下: from django.http import H

jspython的博客 191

WPF数据可视化:LiveCharts自定义X轴与Y轴的5个实战技巧(附完整代码)

本文详细介绍了在WPF应用中使用LiveCharts进行数据可视化时,自定义X轴与Y轴的5个核心实战技巧。内容涵盖精确控制刻度步距、深度定制视觉样式、实现多轴布局对比、优化显示空间以及构建响应式动态轴,并提供了完整的C#和XAML代码示例,帮助开发者创建专业且用户体验出色的图表。

moss5的博客 691

最浅显易懂的Django系列教程(47)-权限和分组

权限和分组 登录、注销和登录限制: 登录 在使用authenticate进行验证后,如果验证通过了。那么会返回一个user对象,拿到user对象后,可以使用django.contrib.auth.login进行登录。示例代码如下: user = authenticate(username=username, password=password) if user is not None: if user.is_active: login(request, user) 注销: 注销,或

jspython的博客 377

跟着团子学SAP CO:基于成本的完工百分比结算:Cost-based POC(以项目为例)

本文以英国及北美会计准则下的基于成本的POC的销售型项目结算对PS模块中的完工百分比进行介绍

Lucas1211的博客 2万+

6.4 构网型储能的需求与配置

摘要: 构网型储能是新型电力系统的关键支撑技术,通过提供电压/频率形成、惯性和稳定控制能力,解决同步机退出导致的系统稳定性问题。其配置需遵循三大原则:1)容量配置以支撑需求为主导,兼顾能量服务;2)优先布局于电网薄弱点、稳定问题突出区域;3)采用自适应控制策略实现全工况优化。核心应用场景包括新能源送出通道稳定、负荷中心调频、黑启动电源等。规划方法需结合系统分析、量化指标和成本效益评估,实现技术经济最优。未来需重点关注构网/跟网混合系统的临界容量占比及自适应控制技术发展。

技术工作者 1140

form 表单添加请求头_0基础掌握Django框架(34)表单概述

为了更好的学习效果,请搭配视频教程一起学习:Django零基础到项目实战 - 网易云课堂​study.163.com表单:HTML中的表单:单纯从前端的html来说,表单是用来提交数据给服务器的,不管后台的服务器用的是Django还是PHP语言还是其他语言。只要把input标签放在form标签中,然后再添加一个提交按钮,那么以后点击提交按钮,就可以将input标签中对应的值提交给服务器了。Djan...

weixin_39986466的博客 361

嵌入式面试题精选100道及参考答案(4万字长文)

指针是C语言中一种特殊的变量,它存储的是另一个变量的内存地址。指针的使用提供了一种间接访问和操作内存的方法。地址操作:通过使用运算符,可以获取变量的地址,并将这个地址赋值给指针变量。间接引用:使用运算符可以访问指针指向的变量的值。动态内存分配:指针用于动态地分配和释放内存。数组操作:指针可以用于遍历和操作数组。函数参数:指针作为函数参数可以改变原始数据。字符串操作:在C语言中,字符串通常以字符数组的形式存在,并通过字符指针进行操作。// 指向数组的第一个元素i < 5;++i) {在这个例子中,

大模型大数据攻城狮的专栏 1971

Django--表单

Django 表单 HTML表单是网站交互性的经典方式。 本章将介绍如何用Django对用户提交的表单数据进行处理。 HTTP 请求 HTTP协议以"请求-回复"的方式工作。客户发送请求时,可以在请求中附加数据。服务器通过解析请求,就可以获得客户传来的数据,并根据URL来提供特定的服务。 GET 方法 GET方法,视图显示和请求处理分成两个函数处理。 POST 方法 提交数据时更...

weixin_30741653的博客 170

Python数据分析全流程指南:从数据采集到可视化呈现的实战解析

在数字化转型浪潮中,数据分析已成为企业决策的核心驱动力。Python凭借其丰富的生态库和简洁的语法,成为数据分析师的首选工具。本文将以实战案例为脉络,拆解数据分析全流程的关键环节,通过具体代码和场景说明如何用Python完成从数据采集到可视化呈现的完整链路。

这家伙很懒,什么都没有留下 1680

打通ZYNQ的任督二脉:AXI_FIFO数据交互全解析

FIFO(First In First Out,先进先出)是一种经典的数据缓冲结构,就像排队买票一样,先来的人先得到服务。时钟域交叉(CDC):连接不同时钟频率的模块数据缓冲:平衡生产者和消费者的速度差异流量控制:防止数据丢失或溢出input clk,// 输入AXI4-Stream接口(从PS到PL)// 输出AXI4-Stream接口(从PL到PS)// 状态指示信号// 定义状态机状态// 数据缓存// 8个深度的缓存// 流水线处理寄存器。

QQ_778132974的博客 305

python django 表单_【Python】django表单与提交

参考:http://djangobook.py3k.cn/2.0/chapter07/本文的内容应属于django的表单模块,没有涉及到的后端request对象的处理方法可以单独深入学习表单。URL和View写一个简单的views.py:1 from django.http importHttpResponse23 defhello(request):4 return HttpRespon...

weixin_39564605的博客 307

【深度学习驱动流体力学】OpenFOAM目录流体力学求解器汇总介绍

下面这些目录结构和其中的求解器和工具展示了OpenFOAM作为一个功能强大且广泛应用的开源CFD软件框架的多样性和灵活性。每个求解器都专门用于解决不同类型的流体动力学问题,从基础的流动模拟到复杂的多相流动和燃烧模拟等各种应用场景。

源代码杀手的博客 1184

每天40分玩转Django教程目录

在课程中,我们将从项目建立、数据库设计到前后端开发,通过实际案例,一步步掌握 Django 开发的核心技能。不管你是想转向 Web 开发,还是需要快速开发企业内部系统,这门课程都能帮你打开 Django 开发的大门。作为一名使用 Django 多年的开发者,真心推荐这份"每天40分钟玩转 Django"教程。哈哈,都看到这儿了,还请关注GZH:凡人的AI工具箱,我会定期分享最新的AI知识和编程动向。重要知识点都结合了实际工作中的最佳实践,帮助你快速上手这个强大的 Web 框架。

weixin_40780178的博客 1646

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Django之from表单

from表单是自带校验宫能的 可以省区我们很多麻烦 现在我们来看下他的用法 1 # 注册的视图函数 2 def register(request): 3 if request.method == "POST": 4 # 这里写个一字典用来和前端的ajax进行交互 5 ret = {"status": 0, "msg": ""} ...

weixin_30367543的博客 195

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

最浅显易懂的Django系列教程(10)-常用过滤器

模版常用过滤器 在模版中,有时候需要对一些数据进行处理以后才能使用。一般在Python中我们是通过函数的形式来完成的。而在模版中,则是通过过滤器来实现的。过滤器使用的是|来使用。比如使用add过滤器,那么示例代码如下: {{ value|add:"2" }} 那么以下就讲下在开发中常用的过滤器。 add 将传进来的参数添加到原来的值上面。这个过滤器会尝试将值和参数转换成整形然后进行相加。如果转换成整形过程中失败了,那么会将值和参数进行拼接。如果是字符串,那么会拼接成字符串,如果是列表,那么会拼接成

jspython的博客 203

django mysql 教程_Django 入门教程

简介:本课程使用的开发环境为 Python 3.x 、Django 1.8.13。课程中将对 Django 的环境搭建、视图、链接路由、模板、模型、数据库操作以及表单进行简单介绍,并结合简单实验示例加以练习。从中我们将学会如何使用 Django 快速构建和维护一个高质量的 Web 应用程序,并加深对于 Django 的 MVC 设计模式的认识。本教程由Django 入门教程发布在实验楼,完整教程、...

weixin_29046611的博客 235

Django Form 表单

Form 表单功能 生成HTML表单元素 检查表单元素的合法性 验证如果错误,重复显示表单 数据类型转换 检查表单元素的合法性 验证如果错误,重复显示表单 数据类型转换 Form相关的对象 Widget 渲染成HTML元素的工具 Field Form对象中的一个字段 Form 一系列Field对象的集合 Form Media 用来渲染表单的CSS与JS资源 Field Form对象中的一...

Tony10010的博客 252

Django + JQuery获取表单中的数据 + Ajax 发送数据

1.方法一:通过Jquery$("#对应form表单id).serializeArray()获取表单数据,直接赋值给$.ajax中的data。 .serializeArray()方法参见jQuery ajax - serializeArray() 方法 该方法放回一个JSON对象数组。 $("#postSubmit").click(function () { let data = $("#postContent").serializeArray();

Jack Lee's blogs 673

django-orm框架表单的增删改查

08.14自我总结 django-orm框架 一.orm基本配置 1.创建django项目 命令行:cmd先去到django创建目录,然后输入django-admin startproject django项目名称 pycharm就直接创建新project选择django 2.settings.py文件配置 1.需要在install_app中配置需要连接的app INSTALLED_...

aiyulove201314的博客 225

django学习入门系列之第十点《初识 django》

manage.py用于项目的管理,启动项目,创建app,数据库的管理里面的东西一行都不用修改但是,是常常用的asgi.py与wsgi.py用来接收网络请求里面的东西一行都不用修改urls.pyURL和函数对应关系-----经常操作的项目配置-----经常操作的。

铁匠匠匠的博客 1456

在 Django 表单中传递自定义表单值到视图

在Django中,我们可以通过表单的初始化参数initial来传递自定义的初始值给表单字段。如果我们想要在视图中设置表单的初始值,可以在视图中创建表单的实例时,传递一个字典给initial参数。1、问题背景我们遇到了这样一个问题:在使用 Django 表单时,我们希望将自定义表单中的值传递到视图中。然而,我们发现无法为多选...

weixin_41170140的博客 79

mysql表单框架_django-orm框架表单的增删改查

08.14自我总结django-orm框架一.orm基本配置1.创建django项目命令行:cmd先去到django创建目录,然后输入django-admin startproject django项目名称pycharm就直接创建新project选择django2.settings.py文件配置1.需要在install_app中配置需要连接的appINSTALLED_APPS = ['django...

weixin_39804629的博客 102

django中表单验证

Form表单验证   Django表单的实例都有一个内置的is_valid()方法,用来验证接收的数据是否合法。如果所有数据都合法,那么该方法将返回True,并将所有的表单数据转存到它的一个叫做cleaned_data的属性中,该属性是以个字典类型数据。 .表单渲染格式 {{ form.as_table }} 将表单渲染成一个表格元素,每个输入框作为一个<tr>标签 {...

weixin_30813225的博客 535

DeepTutor 完整部署教程:5 分钟搭好带知识库与三层记忆的 AI 学习工作区

刚学完一章,把问题丢给 AI,得到一句正确的废话;上周纠正过的理解方式,这周它又忘了。DeepTutor 把资料、偏好和产出放进同一个学习工作区,装好就能用知识库、三层记忆和互动教材生成,全程约 5 分钟。 [![DeepTutor 主界面总览:左侧导航集中 Chat、Co-Writer、Book、Knowledge、Memory 与 Settings 入口](https://raw.gitco

gitblog_00064的博客 679

最新Django全套教程 半个月搞定Django

Python下有许多款不同的Web框架,Django是重量级选手中最有代表性的一位。它由Python写成,采用MVC的软件设计模式,许多成功的网站和APP都基于Django。 无论你是Python开发人员还是Web前端工程师,都要掌握Django框架。接下来小编分享的教程将一步步带你熟悉Django框架,每天进步一点点,半个月就能搞定Django。 教程名称 最新Django全套教程 适宜...

qq_35970166的博客 785

Django-orm框架表单的增删改查

django-orm框架 一.orm基本配置 1.创建django项目 命令行:cmd先去到django创建目录,然后输入django-admin startproject django项目名称 pycharm就直接创建新project选择django 2.settings.py文件配置 1.需要在install_app中配置需要连接的app INSTALLED_APPS = [ 'd...

Python-全栈开发教程-入门到精通 202
上一篇: 最浅显易懂的Django系列教程(33)-分页
下一篇: 最浅显易懂的Django系列教程(35)-用表单验证数据
jspython
博客等级 码龄7年 61粉丝 109原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值