Django 表单常用字段参数

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

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

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

1,添加表单

Test/app14/forms.py

复制代码
from django import forms

class 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 ContactForm

def 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 static

urlpatterns = [

    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/

相关推荐
ZC跨境爬虫14 分钟前
Scrapy分布式爬虫(单机模拟多节点):豆瓣Top250项目设置与数据流全解析
分布式·爬虫·python·scrapy
sg_knight27 分钟前
设计模式实战:命令模式(Command)
python·设计模式·命令模式
石榴树下的七彩鱼32 分钟前
图片修复 API 接入实战:网站如何自动去除图片水印(Python / PHP / C# 示例)
图像处理·后端·python·c#·php·api·图片去水印
Polar__Star1 小时前
C#怎么操作Chart图表控件 C#如何用WinForms Chart控件绑定数据绘制统计图表【控件】
jvm·数据库·python
2401_897190551 小时前
CSS如何制作数字滚动效果_利用transform位移数字
jvm·数据库·python
2301_813599552 小时前
HTML图片怎么用UnoCSS对齐_UnoCSS原子化CSS图片对齐实战
jvm·数据库·python
m0_377618232 小时前
c++怎么在不加载整个大文件的情况下获取其SHA256校验值【进阶】
jvm·数据库·python
LN花开富贵2 小时前
【ROS】鱼香ROS2学习笔记二
linux·笔记·python·学习·嵌入式
qq_189807032 小时前
CSS如何实现纯CSS树状目录结构_利用-checked与递归思维构建交互节点
jvm·数据库·python
Micr0672 小时前
利用Werkzeug-Debug实现本地权限提升
python·web安全·网络安全