Django 表单常用字段参数

embedded/2024/10/21 15:27:54/

Django Form表单,常用表单字段-CSDN博客

        在Django中,表单(Form)是用来处理HTML表单数据的重要工具。Django的表单API允许你定义表单字段及其验证规则。每个表单字段都可以通过多种参数来定制其行为。以下是一些常用的表单字段参数:

  1. label:字段的标签,用于在HTML表单中显示。
  2. help_text:字段的帮助文本,通常显示在标签旁边或字段下方。
  3. required:是否为必填字段。默认为True
  4. initial:字段的初始值。
  5. widget:指定用于渲染字段的HTML小部件(例如TextInputPasswordInputTextarea等)。
  6. validators:一个验证器列表,用于在字段验证时执行额外的检查。
  7. error_messages:自定义错误消息的字典,可以覆盖默认的错误消息。
  8. disabled:是否禁用字段。默认为False
  9. localize:是否对字段值进行本地化处理(例如日期、时间、数字格式)。
  10. label_suffix:字段标签的尾缀,默认为冒号(::)。

1,添加表单

Test/app14/forms.py

from django import formsclass ContactForm(forms.Form):subject = forms.CharField(label='主题',       # 字段的标签,用于在HTML表单中显示。label_suffix='+',   # 字段标签的尾缀,默认为冒号(::)。initial='form表单的常用参数',   # 字段的初始值。help_text='这个是标题字段',  # 字段的帮助文本,通常显示在标签旁边或字段下方。required=False,     # 是否为必填字段。默认为True。disabled=True,      # 是否禁用字段。默认为False。max_length=100)su1 = forms.CharField(label='标题1',          # 字段的标签,用于在HTML表单中显示。max_length=100)su2 = forms.CharField(label='标题2',          # 字段的标签,用于在HTML表单中显示。widget=forms.widgets.Textarea(attrs={"class":"password"}),max_length=100)email = forms.EmailField(                 # 自定义错误消息的字典,可以覆盖默认的错误消息。label='Email')message = forms.CharField(label='Message', widget=forms.Textarea)

2,添加视图函数

Test/app14/views.py

from django.shortcuts import render
from .forms import ContactFormdef contact_view(request):if request.method == 'POST':form = ContactForm(request.POST)if form.is_valid():subject = form.cleaned_data['subject']email = form.cleaned_data['email']message = form.cleaned_data['message']# 这里可以添加代码来处理表单数据,比如发送邮件return render(request, '14/thankyou.html')else:form = ContactForm()return render(request, '14/contact.html', {'form': form}

3,添加HTML代码

Test/templates/14/contact.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Contact Form</title>
</head>
<body><h1>Contact Us</h1><form method="post">{% csrf_token %}{{ form.as_p }}<!--        {{ form.email.errors }}-->
<!--        {{ form.email.label_tag }}-->
<!--        {{ form.email }}--><button type="submit">Submit</button></form>
</body>
</html>

Test/templates/14/thankyou.html 

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Thank You</title>
</head>
<body><h1>Thank You</h1><p>Thank you for your message!</p>
</body>
</html>

4,添加路由地址

Test/app14/urls.py

from django.urls import path
from . import views
from django.conf import settings
from django.conf.urls.static import staticurlpatterns = [path('contact_view/', views.contact_view, name='contact_view'),] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

5,访问页面

http://127.0.0.1:8000/app14/contact_view/


http://www.ppmy.cn/embedded/86733.html

相关文章

DNS劫持

目录 一、DNS的基本概念 二、DNS劫持的工作原理 三、DNS劫持的影响 四、DNS劫持的防范措施 DNS劫持&#xff1a;一种网络安全威胁的深入分析 在当今网络日益发达的时代&#xff0c;互联网已经成为了人们日常生活中不可或缺的一部分。然而&#xff0c;随着网络技术的进步&am…

钉钉 ai卡片 stream模式联调

sdk连接 新建卡片模板下载node.js sdkconfig.json 配置应用信息 启动项目npm i npm run build npm run start连接成功 获取卡片回调 注册卡片回调事件调用https://api.dingtalk.com/v1.0/card/instances 创建卡片实例&#xff0c;返回实例Id //参数结构 {"cardTempla…

基于 Electron+Vite+Vue3+Sass 框架搭建

技术参考 技术描述Electron一个使用 JavaScript、HTML 和 CSS 构建桌面应用程序的框架。嵌入 Chromium 和 Node.jsElectron Forge用于打包和分发 Electron 应用程序的一体化工具。英文地址在此Vite前端构建工具Vue3用于构建用户界面的 JavaScript 框架vitejs/plugin-vueVite 插…

【算法】布隆过滤器

一、引言 在现实世界的计算机科学问题中&#xff0c;我们经常需要判断一个元素是否属于一个集合。传统的做法是使用哈希表或者直接遍历集合&#xff0c;但这些方法在数据量较大时效率低下。布隆过滤器&#xff08;Bloom Filter&#xff09;是一种空间效率极高的概率型数据结构&…

Linux 系统下 Conda 环境安装教程

文章目录 前言一、下载Miniconda或Anaconda二、安装Miniconda三、验证安装四、创建并管理conda环境五、在安装Linux系统下的Conda环境时&#xff0c;特别需要注意的问题总结 前言 Conda 是一个开源的包、依赖和环境管理系统&#xff0c;常用于科学计算领域&#xff0c;特别是P…

【PHP】系统的登录和注册

一、为什么要学习系统的登录和注册 系统的登录和注册可能存在多种漏洞&#xff0c;这些漏洞可能被恶意攻击者利用&#xff0c;从而对用户的安全和隐私构成威胁。通过学习系统的登录和注册理解整个登录和注册的逻辑方便后续更好站在开发的角度思考问题发现漏洞。以下是一些常见…

我在高职教STM32——串口通信(5)

大家好,我是老耿,高职青椒一枚,一直从事单片机、嵌入式、物联网等课程的教学。对于高职的学生层次,同行应该都懂的,老师在课堂上教学几乎是没什么成就感的。正因如此,才有了借助 CSDN 平台寻求认同感和成就感的想法。在这里,我准备陆续把自己花了很多心思的教学设计分享…

ubantu20.04安装gem5

前言 在安装gem5时&#xff0c;花了很长时间&#xff0c;主要是遇到一些奇奇怪怪的错误。在此记录一下。 参考资料 [1] https://www.gem5.org/documentation/learning_gem5/part1/building/ [2] https://blog.csdn.net/weixin_46841376/article/details/137884041 过程 安…