Django form表单使用




在前端提交数据的时候,常常需要提交表单数据。

而在Django中可以使用表单类进行简化操作,方便后台对于表单的处理。

例如下面表单类的一个例子:
from django import forms

class ContactForms:
    subjects = forms.CharField(max_length = 100)
    email = forms.EmailField(required = False)
    message = forms.charField(widget = forms.Textarea)

    #Django 的 forms系统会自动匹配以clean_开头,以字段名为结束的方法
    #当在校验时会被调用
    def clean_message(self):
        message = self.cleaned_data['message']
        num_words = len(message.split())
        if num_words < 4:
            raise forms.ValidationError("Not enough words!")

        return message

#当在view视图中使用时,直接生成即可def contact(request):
    if request.method == 'POST':
        form = ContactForms(request.POST)
        if form.is_valid():
            return HttpResponseRedirect('thank.html')
定制Form设计

显示表单除了可以{{form.as_p}},{{form.as_table}},等,也可以使用CSS设计。

每一个字段部件都可以通过访问{{form.字段名}}进行单独渲染,这个地方需要注意,因为前端渲染必须需要采用这些方法。

    <html>
        <head>
            <title>Contact Us</title>
        </head>

        <!--基本的css样式都可以在这里加-->
        <form acton = "" method = "post">
            <div class = "field">
               <label for = "id_subject" >Subject:</label>
               {{form.subject}}
            </div>

            <div class = "field">
              <label for = "id_email" >Email:</label>
               {{form.email}}
            </div>

            <div class = "field">
                 <label for = "id_message" >Message:</label>
                {{form.message}}
            </div>

        </form>

    </html>

Django中的表单可以使用Django自带的表单模块(forms)来创建。使用Django表单模块可以简化表单的创建和验证,同时也可以提供更好的数据安全性。 下面是使用Django表单模块创建表单的步骤: 1. 创建一个forms.py文件,并导入forms模块: ``` from django import forms ``` 2. 创建一个表单类,并继承自forms.Form类: ``` class MyForm(forms.Form): field1 = forms.CharField(label='Field1', max_length=100) field2 = forms.EmailField(label='Field2') ``` 3. 在视图函数中实例化表单类,并将其作为参数传递给模板: ``` from .forms import MyForm def my_view(request): form = MyForm() return render(request, 'my_template.html', {'form': form}) ``` 4. 在模板中渲染表单: ``` <form method="POST" action=""> {% csrf_token %} {{ form.as_p }} <button type="submit">Submit</button> </form> ``` 注意:form.as_p会将表单渲染成一个p标签。 5. 在视图函数中处理表单提交: ``` def my_view(request): if request.method == 'POST': form = MyForm(request.POST) if form.is_valid(): # 处理表单数据 field1 = form.cleaned_data['field1'] field2 = form.cleaned_data['field2'] # ... return redirect('success') else: form = MyForm() return render(request, 'my_template.html', {'form': form}) ``` 注意:使用form.is_valid()来验证表单是否有效,如果有效则可以使用form.cleaned_data来获取表单数据。 以上就是使用Django表单模块创建表单的基本步骤,更多详细信息可以查看Django官方文档。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值