html提交post django,Django 前端向后台post提交数据

Django里面,通过Html页面提交的数据,可以通过在View里面定义的函数通过request参数获取。简单的说,主要可以分出3种情况。

HTML页面传递来的单个数据, 比如radiobox或者text 可以通过request.POST.get获取

HTML页面传递来多个数据,比如checkbox或者option, 可以通过request.POST.getlist获取

HTML页面上传了一个文件,html端需要表明enctype,表示这是一个文件而不是字符串;后台需要通过request.FILES.get获取这个文件的地址,然后通过chunk分块写入指定的地址

现在来看看实例:

HTML页面

upload.html

html>

Title

性别:

爱好:

音乐

武术

电玩

上海

北京

天津

视图函数

view.py

def upload(request):

if request.method == "GET":

return render(request, 'upload.html')

elif request.method == "POST":

v=request.POST.get('user')

print(v)

# radio

v = request.POST.get('gender')

print(v)

v = request.POST.getlist('favor')

print(v)

v = request.POST.getlist('city')

print(v)

obj = request.FILES.get('fafafa')

print(obj, type(obj), obj.name)

import os

file_path = os.path.join('upload', obj.name)

print(file_path)

f = open(file_path, mode="wb")

for i in obj.chunks():

f.write(i)

f.close()

from django.core.files.uploadedfile import InMemoryUploadedFile

return render(request, 'upload.html')

else:

# PUT,DELETE,HEAD,OPTION...

return redirect('/upload/')

界面

输入下面的值进行提交

f1b8a6d5951bc96866ba2b29881a8f0c.png

成功获取结果

System check identified no issues (0 silenced).

July 06, 2017 - 15:25:56

Django version 1.11, using settings 'Django.settings'

Starting development server at http://127.0.0.1:8000/

Quit the server with CTRL-BREAK.

阿拉丁

2

['22', '33']

['bj', 'tj']

statements.pdf statements.pdf

upload\statements.pdf

[06/Jul/2017 15:26:10] "POST /upload/ HTTP/1.1" 200 1267

确认成功上传文件

89a18980493476cdcdd9f7678fd35c67.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值