python django 表单_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 + '
' + passowrd)

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

{% csrf_token %}

{ {login_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/',show,name='show'),

path('login/',index,name='login'),

path('login_success/',login,name='login_success')

]

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

点击登陆后,返回结果

自动渲染格式

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

将表单渲染成一个表格元素,每个输入框作为一个

标签

将表单的每个输入框包裹在一个

标签内 tags

将表单渲染成一个列表元素,每个输入框作为一个

标签

注意:你要自己手动编写和标签。

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

{% csrf_token %}

{ {login_form.as_p}}

登陆

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

手动渲染格式

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

使用直接获取方式

可以使用 表单.属性 的方式获取到表单的内容输入

{% csrf_token %}

用户id:{ { login_form.username }}

# 这里的 login_form.username 就是直接从表单中获取到数据,然后可以自己添加样式

密码:{ {login_form.password}}

登陆

使用迭代表方式获取

传入的数据进行迭代

{% csrf_token %}

{% for field in login_form %}

# 这里对传入的表单迭代

{ { field.label_tag }}:{ { field }}

# field 是表单输入的内容,field.label_tag 是表单的样式表

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值