get-post请求方式
from django.shortcuts import render
from django.http import HttpResponse
# Create your views here.
def index(request):
print(request.method)#获取请求方式
print(request.encoding)#获取请求编码
print(request.path)# 获取请求路径
return HttpResponse('操作成功')
def get_test(request):
if request.method=='GET':
return render(request,'get_post/get_post_test.html');
elif request.method=='POST':
a=request.POST.get('a');
b=request.POST.get('b');
print(a,b);
return HttpResponse('操作成功')
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="" method="GET>
{% csrf_token %}
{# 防止跨域请求#}
<input type='text' name="a">
<input type="text" name="b">
<input type="submit" value="提交">
</form>
</body>
</html>
类视图
类视图就是在传送hhtp请求时候,可以不用使用判断语句来选择是什么请求方式,而是通过类中的方法自动判断是什么方式,从而做出相应的操作。
from django.views import View
class Blogadd(View):
def get(self,request):
return render(request, 'blog/demo_add.html')
def post(self,request):
title = request.POST.get('title');
content = request.POST.get('content');
# 存入数据库
blog = BlogModel(title=title, content=content)
blog.save();
return render(request, 'blog/demo_add.html')
class BlogUpdate(View):
def get(self, request,blog_id):
blog=BlogModel.objects.get(id=blog_id);
return render(request, 'blog/demo_update.html', context={'blog': blog});
def post(self, request,blog_id):
blog = BlogModel.objects.get(id=blog_id);
blog.title = request.POST.get('title')
blog.content = request.POST.get('content')
blog.save()
return redirect(reverse('blog_list'))
上述是博客的一个简单的类视图的增减和修改的方法。
上传实现:
代码实现:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>文件上传</title>
</head>
<body>
<form action="" method="post" enctype="multipart/form-data">
{% csrf_token %}
<input type="file" name="file"><br>请选择相应的图片
<input type="submit" value="上传">
</form>
</body>
</html>
import os
from mysite.settings import MEDIA_ROOT
class Upload(View):
def get(self,request):
return render(request,'get_post/file.html');
def post(self,request):
f1=request.FILES.get('file')
# print(f1,f1.name);
f_name=os.path.join(MEDIA_ROOT,f1.name);
with open(f_name,'wb') as f:
for i in f1.chunks():
f.write(i)
return HttpResponse('操作成功')