在上一个博客中,我们学习了如果创建django,这里我们主要讲如何把数据传给后台
在url文件中, 从app01中导入views, 以及创建url(r'^login/', views.login)
from django.contrib import admin from django.conf.urls import url from app01 import views urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^login/', views.login), ]
接下来在app01.views中的login函数进行操作
简要说明: 当第一次进入views.login的方式是get, 因此只需要做一个跳转到login.html
当login.html 提交表单返回到views.login时,这时的方式就是post,通过if语句对两者进行区分
from django.shortcuts import render # Create your views here. def login(request):
#第一次直接跳转到login.html,等待用户的操作 if request.method == 'GET': render(request, 'login.html') elif request.method == 'POST': #接收用户返回时的操作
#接收name='gender' 里的value信息 # gender = request.POST.get('gender') # print(gender)
#接收name='gender'里的value信息,getlist常用于接收多个信息,如多选框 # gender = request.POST.getlist('gender1') # print(gender)
# city = request.POST.get('city') # print(city)
# request.FILES.get 主要用于接收name='fafa'的文件
#用循环的方式接收 文件的chunks片段
import os
obj = request.FILES.get('fafa') print(obj)
file_path =obj.name f = open(file_path, mode='wb') for i in obj.chunks(): f.write(i) f.close() return render(request, 'login.html')
html文件,注意在传输文件时需要在form中加入
enctype="multipart/form-data"
在传递单选多选下拉框时name是相同的, 用value值的不同来进行区分
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <form action="/login/" method="post" enctype="multipart/form-data"> <p> <input type="text" name="username"> <input type="text" name="pwd"> <input type="text" name="email"> </p> <p> 男:<input type="radio" name="gender" value="1"> 女:<input type="radio" name="gender" value="2"> 张扬:<input type="radio" name="gender" value="3"> </p> <p> 男:<input type="checkbox" name="gender" value="11"> 女:<input type="checkbox" name="gender" value="22"> 张扬:<input type="checkbox" name="gender" value="33"> </p> <p> <select name="city"> <option value="sh">上海</option> <option value="xm">厦门</option> <option value="gj">广州</option> </select> </p> <p> <input type="file" name="fafa"> </p> <input type="submit" value="提交"> </form> </body> </html>