当前位置: 首页 > wzjs >正文

PHP+Ajax网站开发典型实例全国做网站公司前十名

PHP+Ajax网站开发典型实例,全国做网站公司前十名,酷黑网站,移动端网站设计尺寸使用Django框架表单 文章目录 使用Django框架表单[toc]1.使用Form类构建表单2.表单字段与Widget控件 1.使用Form类构建表单 【创建项目和应用】 PS C:\Users\ls> cd E:\Python\ PS E:\Python> django-admin.exe startproject FormSite PS E:\Python> cd .\FormSite\…

使用Django框架表单

文章目录

  • 使用Django框架表单
    • @[toc]
    • 1.使用Form类构建表单
    • 2.表单字段与Widget控件

1.使用Form类构建表单

【创建项目和应用】

PS C:\Users\ls> cd E:\Python\
PS E:\Python> django-admin.exe startproject FormSite
PS E:\Python> cd .\FormSite\
PS E:\Python\FormSite> django-admin.exe startapp formapp
PS E:\Python\FormSite> 

文件路径【FormSite/formapp/forms.py】

from django import forms# Form Class : UserInfoForm
class UserInfoForm(forms.Form):username = forms.CharField(label='Your name', max_length=32)dep = forms.CharField(label='Your department', max_length=32)email = forms.EmailField(label='Your email', max_length=64)

【代码分析】

通过CharField字段类型定义了一个表单字段username,对应于HTML表单form标签中的“用户名”文本输入框。

通过CharField字段类型定义了一个表单字段dep,对应于HTML表单form标签中的“部门”文本输入框。

通过EmailField字段类型定义了一个表单字段email,对应于HTML表单form标签中的“电子邮件”文本输入框。

文件路径【FormSite/formapp/views.py】

from django.shortcuts import render# Create your views here.
def index(request):return HttpResponse("This is formapp homepage.")# class : UserInfoForm
from .forms import UserInfoForm
# 创建表单视图
def userinfo(request):# 如果这是一个post请求,那么我们需要处理表单数据if request.method == 'POST':# 创建一个表单实例并用请求中的数据填充form = UserInfoForm(request.POST)# 检查表单是否有效if form.is_valid():# 按照要求处理表单中的数据context = {}context['uname'] = request.POST['username']context['udep'] = form.cleaned_data['dep']context['uemail'] = request.POST['email']# 重定向到一个新的URLreturn render(request, 'show_info.html', {'userinfo': context})# return HttpResponseRedirect("#")# 如果是GET(或其他任何方法),我们将创建一个空白表单else:form = UserInfoForm()# 在HTML模板中渲染表单return render(request, 'userinfo.html', {'form': form})

【代码分析】

通过if条件语句判断HTTP请求方法,如果为POST方法,则继续执行后面代码去接受用户提交的数据;如果为GET方法,则直接跳转到else,执行return,返回空的表单实例(form),让用户去录入数据再进行提交。

先通过request获取表单数据,再通过UserInfoForm表单类创建表单实例form。

通过if条件语句对表单实例form进行验证,如果所有的表单字段均有效,则继续执行下面的代码。

通过request获取表单字段数据,并保存在上下文变量context中。

将上下文变量context保存为字典类型变量userinfo,通过render()方法传递表单数据userinfo到新的页面中进行显示。

将表单实例form渲染到表单模板userinfo.html中。

文件路径【FormSite/formapp/templates/userinfo.html】

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><link rel="stylesheet" type="text/css" href="/static/css/mystyle.css"/><title>Userinfo Form</title>
</head>
<body><h3>Userinfo Form</h3><form action="#" method="post">{% csrf_token %}{% for f in form %}{{ f.label }}:&nbsp;&nbsp;{{ f }}<br><br>{% endfor %}<input type="submit" value="Submit" /><br>
</form></body>
</html>

【代码分析】

通过{% csrf_token %}模板标签为表单增加防护功能。django框架自带一个简单易用的“跨站请求伪造防护”,当通过POST方法提交了一个启用CSRF防护的表单时,必须在表单中使用模板标签csrf_token。

通过{% for-endfor %}模板标签遍历表单实例form的每一项,并在页面模板中显示。

定义了表单提交按钮

文件路径【FormSite/formapp/templates/show_info.html】

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><link rel="stylesheet" type="text/css" href="/static/css/mystyle.css"/><title>Show Userinfo</title>
</head>
<body>
<p>userinfo (total):<br>{{ userinfo }}<br>
</p>
<p>userinfo (items):<br>{% for key,value in userinfo.items %}{{ key }}&nbsp;:&nbsp;{{ value }}<br>{% endfor %}
</p>
</body>
</html>

【代码分析】

直接通过字典类型的上下文变量userinfo在页面模板中输出表单提交的数据信息。

通过{% for-endfor %}模板标签遍历字典类型的上下文变量userinfo中的每一项,并依次在页面模板中进行显示。

文件路径【FormSite/formapp/urls.py】

from django.urls import path
from . import viewsurlpatterns = [path('', views.index, name='index'),path('userinfo/', views.userinfo, name='userinfo'),
]

文件路径【FormSite/FormSite/urls.py】

from django.contrib import admin
from django.urls import include, pathurlpatterns = [path('formapp/', include('formapp.urls')),path('admin/', admin.site.urls),
]

文件路径【FormSite/FormSite/settings.py】

INSTALLED_APPS = ['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','formapp.apps.FormappConfig',
]

【测试表单应用】
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述


2.表单字段与Widget控件

文件路径【FormSite/formapp/forms.py】

from django import forms# Form Class : UserInfoForm
class UserInfoForm(forms.Form):username = forms.CharField(label='Your name', max_length=32)dep = forms.CharField(label='Your department', max_length=32)email = forms.EmailField(label='Your email', max_length=64)# Form Class : ContactForm
class ContactForm(forms.Form):subject = forms.CharField(label='Subject', max_length=64)message = forms.CharField(label='Message', widget=forms.Textarea)sender = forms.EmailField(label='Sender', max_length=64)cc_myself = forms.BooleanField(required=False)

文件路径【FormSite/formapp/views.py】

from django.shortcuts import render# Create your views here.
def index(request):return HttpResponse("This is formapp homepage.")# class : UserInfoForm
from .forms import UserInfoForm
# Create form view
def userinfo(request):# if this is a POST request we need to process the form dataif request.method == 'POST':# create a form instance and populate it with data from the request:form = UserInfoForm(request.POST)# check whether it's valid:if form.is_valid():# process the data in form.cleaned_data as requiredcontext = {}context['uname'] = request.POST['username']context['udep'] = form.cleaned_data['dep']context['uemail'] = request.POST['email']# redirect to a new URL:return render(request, 'show_info.html', {'userinfo': context})# return HttpResponseRedirect("#")# if a GET (or any other method) we'll create a blank formelse:form = UserInfoForm()# render form in HTML templatereturn render(request, 'userinfo.html', {'form': form})# class : ContactForm
from .forms import ContactForm
# Create form view
def contact(request):# if this is a POST request we need to process the form dataif request.method == 'POST':# create a form instance and populate it with data from the request:form = ContactForm(request.POST)# check whether it's valid:if form.is_valid():# process the data in form.cleaned_data as requiredcontext = {}subject = form.cleaned_data['subject']message = form.cleaned_data['message']sender = form.cleaned_data['sender']cc_myself = form.cleaned_data['cc_myself']recipients = ['kingwjz@hotmail.com']if cc_myself:recipients.append(sender)# send_mail(subject, message, sender, recipients)context['subject'] = subjectcontext['message'] = messagecontext['sender'] = sendercontext['cc_myself'] = cc_myself# redirect to a new URL:return render(request, 'show_contact.html', {'contact': context})# return HttpResponseRedirect("#")else:print(form.errors)print(form.errors.as_json())# if a GET (or any other method) we'll create a blank formelse:form = ContactForm()# render form in HTML templatereturn render(request, 'contact.html', {'form': form})

文件路径【FormSite/formapp/templates/contact.html】

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><link rel="stylesheet" type="text/css" href="/static/css/mystyle.css"/><title>Contact Form</title>
</head>
<body><h3>Contact Form</h3><form action="#" method="post">{% csrf_token %}{% for f in form %}{{ f.label }}:&nbsp;&nbsp;{{ f }}<br><br>{% endfor %}<input type="submit" value="Submit" /><br>
</form></body>
</html>

文件路径【FormSite/formapp/templates/show_contact.html】

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><link rel="stylesheet" type="text/css" href="/static/css/mystyle.css"/><title>Show Userinfo</title>
</head>
<body><h3>Contact Info</h3>
<p>contact (items):<br><br>{% for key,value in contact.items %}{{ key }}&nbsp;:&nbsp;{{ value }}<br><br>{% endfor %}
</p></body>
</html>

文件路径【FormSite/formapp/urls.py】

from django.urls import path
from . import viewsurlpatterns = [path('', views.index, name='index'),path('userinfo/', views.userinfo, name='userinfo'),path('contact/', views.contact, name='contact'),
]

【访问测试】
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述



文章转载自:

http://2KK6fpTq.fhcwm.cn
http://XtP3ASyD.fhcwm.cn
http://JiQkLhl0.fhcwm.cn
http://0mkDophj.fhcwm.cn
http://jQDGfYDz.fhcwm.cn
http://UVNrWTud.fhcwm.cn
http://2B21mdgb.fhcwm.cn
http://LUP5CpQQ.fhcwm.cn
http://0G3leD01.fhcwm.cn
http://uP3ZvnNM.fhcwm.cn
http://owYM3UeH.fhcwm.cn
http://Y2E4EqVM.fhcwm.cn
http://eg7mG7UZ.fhcwm.cn
http://uVnenWh8.fhcwm.cn
http://48wBrP3b.fhcwm.cn
http://DuHVJ9eI.fhcwm.cn
http://WQdjKmZf.fhcwm.cn
http://gZJsdEf4.fhcwm.cn
http://sA5ddGub.fhcwm.cn
http://tqXN8MpS.fhcwm.cn
http://YgPMUv9a.fhcwm.cn
http://rS8Xllbf.fhcwm.cn
http://LbihPuZ7.fhcwm.cn
http://rGzRsD1x.fhcwm.cn
http://0sps9Us7.fhcwm.cn
http://ffN4Xk5I.fhcwm.cn
http://hHaGIZNX.fhcwm.cn
http://DWMi1fDQ.fhcwm.cn
http://GFG5ujWF.fhcwm.cn
http://BhcggVtB.fhcwm.cn
http://www.dtcms.com/wzjs/631280.html

相关文章:

  • 物流公司网站建设系统规划那个网站建设好
  • 写文案要看的网站怎样自己做公司网站
  • 网站备案有什么好处理网站制作费用多少
  • 河源市做网站wordpress编辑写文章失败
  • 个人网站设计与实现结论滁州seo优化
  • 网站 成功案例seo排名优化北京
  • 网站优化怎样的湖南建设监理协会网站
  • 第三方网站开发优缺点优质的外国网站
  • 吉他谱网站如何建设WordPress缩略图太模糊
  • 网站建设中 英文深圳外贸建设网站
  • 如何查看一个网站的浏览量百度开放云做网站
  • 自己想做一个网站怎么做企业组织架构
  • 朋友圈海报用什么网站做的昆明优化网站公司
  • 推广业务网站建设网站建设的步骤过程视频
  • 建行手机网站新品上市的营销方案
  • html网站设计源码带后台的响应式网站
  • 网站总浏览量免费建手机商城网站
  • 网站批量上传服务器wordpress播放视频播放
  • 福州企业高端网站建设制作哪家好做网站多少钱西宁君博示范
  • 重庆网站建设冒号网站代码怎么写
  • 单页产品网站源码带后台免费的网站推广软件
  • 丹麦网站后缀专做白酒的网站
  • 网站搜索引擎关键字怎么做网站建站公司多少钱
  • 申请了域名 网站怎么建设呢网站推广公司兴田德润官网多少
  • 上海高端模板建站网站流量如何提高
  • 网站开发感受东莞网站建设 石化
  • 济南网站中企动力重庆快速网站推广
  • 网站推广排名有什么技巧jquery 个人网站
  • 涪城网站建设做网站国内阿里云虚拟主机多少钱
  • 怎么在悉尼做网站网站开发工程师怎么样