Django-表单处理


title: Django-表单处理
copyright: true
top: 0
date: 2019-07-08 21:56:35
tags:
categories: WEB 后端框架
permalink:
password:
keywords:
description: 使用Django处理表单内容,非常贴心

这个世界像是蒙着一层白雾,看不清这个世界也看不见自己,只是感觉到脚下还踩着坚实的土地,由此证明自己还活着,除了自己一无所有。

使用表单

以前提交表单内容数据都是在HTML中写一个表单,然后发送到后端,后端进行处理。

但是在Django中变得简单明了,首先在应用的目录下新建一个forms.py

# NHDZ/app/forms.py

# coding:utf-8
from django import forms
import datetime
class Login(forms.Form):
    username = forms.CharField(label='用户名', widget=forms.TextInput, initial='admin', label_suffix=':x:',required=True)
    # 这里设置表单传送过来的数据,并且自动在前端生成表单
    # label 表单的前缀显示  '用户名:'
    # widget   类型为text
    # initial 输入框内的默认值 为 admin
    # label_suffix 后缀,默认是 用户名: 现在变成了  用户名:x:
    # required 给字段添加必填属性,不能空着。

    password = forms.CharField(label='密码', widget=forms.PasswordInput, initial=datetime.date.today(),help_text='在这里输入你的密码')
    # initial 默认值 可以动态获取日期
    # help_text 帮助文档

然后就能在视图中编写登陆部分的功能

# NHDZ/app/login.py

# coding:utf-8
from .froms import Login
from django.shortcuts import render
from django.http import HttpResponse

def index(request):
    # 登陆页面
    login_form = Login()
    # 实例化表单,然后把表单的内容获取后,渲染到html页面
    return render(request, 'login.html', {'login_form': login_form})


def login(request):
    # 登陆验证
    if request.method == 'POST':
        do_login = Login(request.POST)
        # 实例化传递过来的数据
        if do_login.is_valid():
            # 判断数据是否合法
            username = do_login.cleaned_data['username']
            # 这里的 cleaned_data方法可以清洗数据,然后获取数据
            passowrd = do_login.cleaned_data['password']
            return HttpResponse(username + '<br>' + passowrd)

然后在templates文件夹新建一个login.html文件,内容如下

<form action="{%url 'login_success'%}" , method='POST'>
	{% csrf_token %}
	{
  {login_form}}
<button type="submit">登陆</button>
</form>

最后修改一些路由文件urls.py

# NHDZ/app/urls.py

from django.urls import path
from .views import Index,Add_Images,Add_Texts
from .show import show
from .login import index,login
urlpatterns = [
    path('',Index,name='index'),
    path('add_texts/',Add_Texts,name='add_texts'),
    path('add_images/',Add_Images,name='add_images'),
    path('show/<str:user>',show,name='show'),
    path('login/',index,name='login'),
    path('login_success/',login,name='login_success')
]

这个时候添加功能差不多完成了,访问一下看看是不是生成了表单

点击登陆后,返回结果

自动渲染格式

在演示的login.html中,我只是传入了 { {login_form}} 就自动生成了表单,但是样式还是非常简陋的,这里使用Django提供自带的样式表渲染就可以变得美美哒

  1. { { form.as_table }} 将表单渲染成一个表格元素,每个输入框作为一个标签
  2. { { form.as_p }} 将表单的每个输入框包裹在一个

    标签内 tags

  3. { { form.as_ul }} 将表单渲染成一个列表元素,每个输入框作为一个
  4. 标签

注意:你要自己手动编写

  • 标签。

比如我现在把login.html文件修改成这样

<form action="{%url 'login_success'%}" , method='POST'>
	{% csrf_token %}
	{
  {login_form.as_p}}
<button type="submit">登陆</button>

现在前端显示的表的样式就变成酱紫

手动渲染格式

在希望引用bootstrap时候,需要手动渲染每个地方的样式表,可以通过如下方式进行获取到表的内容,然后进行渲染

使用直接获取方式

可以使用 表单.属性 的

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

浪子燕青啦啦啦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值