Django学习笔记-表单(forms)的使用

在Django中提供了了form表单,可以更为简单的创建表单模板信息,简化html的表单。

一、网页应用程序中表单的应用

表单通常用来作为提交数据时候使用。

1.1 创建表单模板文件夹

在项目文件夹下创建一个template文件夹,用于存储所有的html模板文件。

Django学习笔记-表单(forms)的使用_第1张图片

1.2 在文件夹下创建对应的html模板文件




    
    
    User Name


    

1.3 添加模板文件路径到settings.py文件中

填写项目的相对路径即可。

Django学习笔记-表单(forms)的使用_第2张图片

 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/', serverapp_views.converter),         # 格式转换
    re_path(r'^re/(?P[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)的使用_第3张图片

二、使用Django的forms表单替换html的表单

2.1 在App中创建一个forms.py文件统一管理表单

Django学习笔记-表单(forms)的使用_第4张图片

 2.2 创建表单类PersonForm

定义的属性就对应表单中的每一项。

# _*_ coding:utf-8 _*_

from django import forms


class PersonForm(forms.Form):
    """人员表单类"""

    name = forms.CharField(label="name", max_length=10)
    phone = forms.CharField(label="phone", max_length=11)

 2.3 修改html模块,用form替代HTML字待的表单




    
    
    User Name


    
    
{% csrf_token %} {{ personform }}

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_views


urlpatterns = [
    path('test/2023', serverapp_views.test),        # 精确匹配
    path('converter/', serverapp_views.converter),         # 格式转换
    re_path(r'^re/(?P[0-9]{1,4})/$', serverapp_views.rematch),         # 正则表达式,通过添加起止符限制匹配,避免中间多级路径后匹配到,造成错误匹配。
    path('person', serverapp_views.get_person),        # 获取人员信息
    path('personform', serverapp_views.get_personform),        # 使用表单获取人员信息
]

2.6 访问表单

放到后直接获取到表单模板。

Django学习笔记-表单(forms)的使用_第5张图片

Django学习笔记-表单(forms)的使用_第6张图片

 输入后提交数据:

Django学习笔记-表单(forms)的使用_第7张图片Django学习笔记-表单(forms)的使用_第8张图片

你可能感兴趣的:(#,Django,python,django)