您的位置:首页 > 编程语言 > Go语言

Django进阶

2016-05-27 18:05 369 查看
一、Form

django中的Form一般有两种功能:1、输入html  2、验证用户输入

1、输入html

from django.shortcuts import render
from django import forms

class UserForm(forms.Form):
host = forms.CharField()
port = forms.CharField()
email = forms.EmailField()
mobile = forms.CharField()

def user_list(request):
obj = UserForm()
return render(request,"index.html",{"obj":obj})


  html

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="/app01/user_list/">
<!--自动生成input标签-->
<p>主机:{{ obj.host }}</p>
<p>端口:{{ obj.port }}</p>
<p>邮箱:{{ obj.email }}</p>
<p>手机:{{ obj.mobile }}</p>
<input type="submit">
</form>
</body>
</html>


2、验证

from django.shortcuts import render
from django import forms

class UserForm(forms.Form):
host = forms.CharField()
port = forms.CharField()
email = forms.EmailField()
mobile = forms.CharField()

def user_list(request):
obj = UserForm()
if request.method == "POST":
user_input_obj = UserForm(request.POST)#把提交过来的数据封装到UserForm,UserForm会自动把数据封装到user_input_obj
if user_input_obj.is_valid():   #验证用户输入是否合法
data = user_input_obj.clean()   #合法,获取数据
else:
error_msg = user_input_obj.errors   #不合法,返回错误信息
return render(request,"index.html",{"obj":user_input_obj,"error":error_msg})
return render(request,"index.html",{"obj":obj})


优化

#upload
def upload(request):
if request.method == "POST":
file_name=request.FILES
file_obj=file_name.get("file_name_1") #获取到封装了文件操作的对象
f = open(file_obj.name,"wb")
for line in file_obj.chunks(): #循环取数据
f.write(line)   #写入
f.close()
return HttpResponse("ok")
else:
return render(request,"app01/uploadfile.html")


View Code
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: