Django学习笔记-表单(forms)的使用
在Django中提供了了form表单,可以更为简单的创建表单模板信息,简化html的表单。
一、网页应用程序中表单的应用
表单通常用来作为提交数据时候使用。
1.1 创建表单模板文件夹
在项目文件夹下创建一个template文件夹,用于存储所有的html模板文件。

1.2 在文件夹下创建对应的html模板文件
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>User Name</title>
</head>
<body><form><label for="name">名字</label><input type="text" id="name" name = "name" maxlength="10" required/><label for="phone">电话</label><input id="phone" type="text" name="phone" maxlength="11" required/></form>
</body>
</html>
1.3 添加模板文件路径到settings.py文件中
填写项目的相对路径即可。

1.4 路由设置
在app中views.py文件中添加响应函数:
def get_person(request):"""method of re match"""return render(request,"person.html")
在urls.py添加路由设置
urlpatterns = [path('test/2023', serverapp_views.test), # 精确匹配path('converter/<int:num>', serverapp_views.converter), # 格式转换re_path(r'^re/(?P<num>[0-9]{1,4})/$', serverapp_views.rematch), # 正则表达式,通过添加起止符限制匹配,避免中间多级路径后匹配到,造成错误匹配。path('person', serverapp_views.get_person), # 获取人员信息
]
1.5 访问表单
直接浏览器通过“http://127.0.0.1:8000/serverapp/person” 访问:

二、使用Django的forms表单替换html的表单
2.1 在App中创建一个forms.py文件统一管理表单

2.2 创建表单类PersonForm
定义的属性就对应表单中的每一项。
# _*_ coding:utf-8 _*_from django import formsclass PersonForm(forms.Form):"""人员表单类"""name = forms.CharField(label="name", max_length=10)phone = forms.CharField(label="phone", max_length=11)
2.3 修改html模块,用form替代HTML字待的表单
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>User Name</title>
</head>
<body><!--action 是访问的url--><form action="/serverapp/views/get_personform" method="post">{% csrf_token %} <!--防止跨域攻击-->{{ personform }} <!--引用表单,views函数中定义的名称一致--><button type="submit">提交</button></form>
</body>
</html>
2.4 views.py中定义函数引用表单
通过路由处理函数可以对访问信息进行识别,获取表单的基本信并进行处理。
def get_personform(request):"""method of re match"""if request.method == "POST":# 获取表单form = PersonForm(request.POST)# 判断是否为有效表单if form.is_valid():# 使用cleaned_data获取请求数据name = form.cleaned_data["name"]phone = form.cleaned_data["phone"]# 返回数据return HttpResponse(f"Data is :\r\n name:{name}\r\nphone:{phone}")else:return HttpResponseRedirect("/error/")# Get方法访问else:# 重定向到登录表单页面return render(request, "personform.html", {'personform':PersonForm()})
2.5 添加路径到urls.py中
from django.urls import path,re_path
from serverapp import views as serverapp_viewsurlpatterns = [path('test/2023', serverapp_views.test), # 精确匹配path('converter/<int:num>', serverapp_views.converter), # 格式转换re_path(r'^re/(?P<num>[0-9]{1,4})/$', serverapp_views.rematch), # 正则表达式,通过添加起止符限制匹配,避免中间多级路径后匹配到,造成错误匹配。path('person', serverapp_views.get_person), # 获取人员信息path('personform', serverapp_views.get_personform), # 使用表单获取人员信息
]
2.6 访问表单
放到后直接获取到表单模板。


输入后提交数据:


相关文章:
Django学习笔记-表单(forms)的使用
在Django中提供了了form表单,可以更为简单的创建表单模板信息,简化html的表单。 一、网页应用程序中表单的应用 表单通常用来作为提交数据时候使用。 1.1 创建表单模板文件夹 在项目文件夹下创建一个template文件夹,用于存储所有的html模…...
机器学习分布式框架ray运行TensorFlow实例
使用Ray来实现TensorFlow的训练是一种并行化和分布式的方法,它可以有效地加速大规模数据集上的深度学习模型的训练过程。Ray是一个高性能、分布式计算框架,可以在集群上进行任务并行化和数据并行化,从而提高训练速度和可扩展性。 以下是实现…...
QT【day4】
chat_QT服务器端: //.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include<QTcpServer> //服务器类 #include<QTcpSocket> //客户端类 #include<QMessageBox> //对话框类 #include<QList> //链表容器 #inc…...
java中方法相关知识点详解
方法 简介 方法是一段用来完成特定功能的代码片段,用于定义该类或该类的实例的行为特征和功能实现语句块【复合语句】 语句块中定义的变量只能用于自己,外部不能使用 语句块可以使用外部的变量,而外部不能使用语句块的变量语法 [修饰符1 修饰…...
【算法训练营】Fibonacci数列+合法括号序列判断+两种排序方法
7.29 Fibonacci数列题目解析代码 合法括号序列判断题目题解代码 两种排序方法题目:题解代码 Fibonacci数列 题目 题目链接: 点击跳转 解析 【题目解析】: 本题是对于Fibonacci数列的一个考察,Fibonacci数列的性质是第一项和第二项都为1&am…...
【Rasa】入门案例学习
Rasa初体验--构建对话机器人 NLU数据 version: "3.1"nlu:- intent: greetexamples: |- Hi- Hey!- Hello- Good day- Good morning- intent: subscribeexamples: |- I want to get the newsletter- Can you send me the newsletter?- Can you sign me up for the ne…...
基于java的坦克大战游戏的设计与实现--开题报告--【毕业论文】
文章目录 本系列校训毕设的技术铺垫文章主体层次选题目的和意义:与本课题相关的技术和方法综述:主要设计内容:设计的环境、方法及措施:参考文献 配套资源 本系列校训 互相伤害互相卷,玩命学习要你管,天生我…...
学习笔记|百度文心千帆大模型平台测试及页面交互简易代码
目前百度文心一言的内测资格申请相当拉胯,提交申请快3个月,无任何音讯。不知道要等到什么时候。 百度适时开放了百度文心千帆大模型平台,目前可以提交申请测试,貌似通过的很快,已取得测试申请资格,可以用起…...
Python中的数据科学实验库有哪些?
Python中有许多数据科学实验库可供使用。以下是一些常用的库: NumPy:用于处理大型多维数组和矩阵的基础数学库。Pandas:用于数据处理和分析的库,提供了灵活的数据结构和数据操作工具。Matplotlib:用于创建静态、动态和…...
区间预测 | MATLAB实现QRLSTM长短期记忆神经网络分位数回归多输入单输出区间预测
区间预测 | MATLAB实现QRLSTM长短期记忆神经网络分位数回归多输入单输出区间预测 目录 区间预测 | MATLAB实现QRLSTM长短期记忆神经网络分位数回归多输入单输出区间预测效果一览基本介绍模型描述程序设计参考资料 效果一览 基本介绍 MATLAB实现QRLSTM长短期记忆神经网络分位数回…...
Pytorch nn.Linear的基本用法与原理详解
1. 参考 Pytorch nn.Linear的基本用法与原理详解_iioSnail的博客-CSDN博客 [机器学习]深度学习初学者大疑问之nn.Linear(a,b)到底代表什么?_五阿哥爱跳舞的博客-CSDN博客...
数据结构:栈和队列的实现和图解二者相互实现
文章目录 写在前面栈什么是栈栈的实现 队列什么是队列队列的实现 用队列实现栈用栈模拟队列 写在前面 栈和队列的实现依托的是顺序表和链表,如果对顺序表和链表不清楚是很难真正理解栈和队列的 下面为顺序表和链表的实现和图解讲解 手撕图解顺序表 手撕图解单链表 …...
深入理解C++命名空间
文章目录 1. 命名空间的概念2. 解决命名冲突3. 嵌套命名空间4. 使用命名空间别名总结 在C编程中,命名空间(Namespace)是一种非常有用的工具,它可以帮助我们组织和管理代码,避免命名冲突。本文将深入介绍C命名空间的概念…...
<MySQL>建表SQ和CRUD SQ脚本案例二
1. MySQL 建表SQ脚本案例: 地域表 CREATE TABLE xxx_region_list_dic (seqId INT(11) NOT NULL AUTO_INCREMENT,sortId INT(11) DEFAULT NULL,name VARCHAR(255) NOT NULL COMMENT 地域,code VARCHAR(25) NOT NULL COMMENT 编码,isEnable VARCHAR(25) DEFAULT NULL…...
webpack基础配置
webpack基础 webpack 处理css兼容问题webpack 处理css闪屏问题webpack 优化压缩css代码总结webpack 两种开发模式webpack 基本的功能webpack配置 5概念devServer 生产环境webpack配置实例开发环境webpack配置实例webpack优化 webpack 处理css兼容问题 下载loader 引入 package…...
宝塔面板Django项目部署(无数据库版)
近日在学习使用宝塔面板部署Django开发的web项目,走了不少弯路花了3天的时间才完成下面的文字,希望这篇文字能给正在摸索中的人带去点帮助。 一、安装宝塔面板 打开宝塔面板的官方网站(https://www.bt.cn/new/index.html).点击" " 会看到: 当…...
windows默认编码格式修改
1.命令提示符界面输入 chcp 936 对应 GBK 65001 对应 UTF-8 2.临时更改编码格式 chcp 936(或65001) 3.永久更改编码格式 依次开控制面板->时钟和区域->区域->管理->更改系统区域设置,然后按下图所示,勾选使用UTF-8语言支持。然后重启电脑。此…...
原生js vue react通用的递归函数
🙂博主:锅盖哒 🙂文章核心:原生js vue react通用的递归函数 目录大纲 1.递归函数的由来 2.代码逻辑 1.递归函数的由来 递归函数的由来可以追溯到数学中的递归概念和数学归纳法。 在数学中,递归是指通过定义基本情况和…...
vue指令-v-text和v-html
vue指令-v-text和v-html 1、目标2、语法 1、目标 更新DOM对象的innerText/innerHTML 2、语法 v-text“Vue数据变量" v-html“Vue数据变量"注意:会覆盖插值表达式 示例: <template><div id"app"><div><p v…...
quartus工具篇——PLL IP核的使用
quartus工具篇——PLL IP核的使用 1、PLL简介 PLL(Phase-Locked Loop,相位锁环)是FPGA中非常重要的时钟管理单元,其主要功能包括: 频率合成 - PLL可以生成比输入时钟频率高的时钟信号。频率分频 - PLL也可以输出分频后的较低频率时钟。减小时钟抖动 - PLL可以过滤输入时钟中…...
后进先出(LIFO)详解
LIFO 是 Last In, First Out 的缩写,中文译为后进先出。这是一种数据结构的工作原则,类似于一摞盘子或一叠书本: 最后放进去的元素最先出来 -想象往筒状容器里放盘子: (1)你放进的最后一个盘子(…...
【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型
摘要 拍照搜题系统采用“三层管道(多模态 OCR → 语义检索 → 答案渲染)、两级检索(倒排 BM25 向量 HNSW)并以大语言模型兜底”的整体框架: 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后,分别用…...
业务系统对接大模型的基础方案:架构设计与关键步骤
业务系统对接大模型:架构设计与关键步骤 在当今数字化转型的浪潮中,大语言模型(LLM)已成为企业提升业务效率和创新能力的关键技术之一。将大模型集成到业务系统中,不仅可以优化用户体验,还能为业务决策提供…...
超短脉冲激光自聚焦效应
前言与目录 强激光引起自聚焦效应机理 超短脉冲激光在脆性材料内部加工时引起的自聚焦效应,这是一种非线性光学现象,主要涉及光学克尔效应和材料的非线性光学特性。 自聚焦效应可以产生局部的强光场,对材料产生非线性响应,可能…...
YSYX学习记录(八)
C语言,练习0: 先创建一个文件夹,我用的是物理机: 安装build-essential 练习1: 我注释掉了 #include <stdio.h> 出现下面错误 在你的文本编辑器中打开ex1文件,随机修改或删除一部分,之后…...
【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)
服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...
Java - Mysql数据类型对应
Mysql数据类型java数据类型备注整型INT/INTEGERint / java.lang.Integer–BIGINTlong/java.lang.Long–––浮点型FLOATfloat/java.lang.FloatDOUBLEdouble/java.lang.Double–DECIMAL/NUMERICjava.math.BigDecimal字符串型CHARjava.lang.String固定长度字符串VARCHARjava.lang…...
1.3 VSCode安装与环境配置
进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件,然后打开终端,进入下载文件夹,键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...
laravel8+vue3.0+element-plus搭建方法
创建 laravel8 项目 composer create-project --prefer-dist laravel/laravel laravel8 8.* 安装 laravel/ui composer require laravel/ui 修改 package.json 文件 "devDependencies": {"vue/compiler-sfc": "^3.0.7","axios": …...
Python基于历史模拟方法实现投资组合风险管理的VaR与ES模型项目实战
说明:这是一个机器学习实战项目(附带数据代码文档),如需数据代码文档可以直接到文章最后关注获取。 1.项目背景 在金融市场日益复杂和波动加剧的背景下,风险管理成为金融机构和个人投资者关注的核心议题之一。VaR&…...
