django接受表单

from django.shortcuts import render
from django.shortcuts import HttpResponse
import os

# Create your views here.
error_msg = ''
def register(request):
    if request.method == 'POST':
        username = request.POST.get('username')
        passwd = request.POST.get('passwd')
        email = request.POST.get('email')
        tel = request.POST.get('tel')
        photo = request.FILES.get('file')
        uploadfile = os.path.join('upload',photo.name)
        with open(uploadfile,'wb') as fileobj:
            for chunk in photo.chunks():
                fileobj.write(chunk)
        if username == None or passwd == None or email == None or tel == None:
            error_msg = '不能为空,请重新输入!'
            return render(request, 'regist/register.html', {'error_msg': error_msg})
        else:
            print('准备输入mysql')
            return HttpResponse('注册成功')
    elif request.method == 'GET':
        return render(request,'regist/register.html',{'error_msg': ''})

  

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>用户注册</title>
</head>
<body>
    <div id="t2" class="header-r">
        <form name="register_form" id="register_form" action="/regist/" method="post" enctype="multipart/form-data">
            <h4>输入账户信息</h4>
            <input type="text" id="username" name="username" placeholder="用户名"/>
            <input type="password" id="passwd" name="passwd" placeholder="密码"/>
            <input type="text" id="email" name="email" placeholder="邮箱"/>
            <input type="text" id="tel" name="tel" placeholder="电话"/>
            <input type="file" id="file" name="file"/>
            <!--<input type="button" value="login" />-->
            <input type="submit" value="确定注册" />
            <p style="color: red">{{ error_msg }}</p>
        </form>
     <p style="color: red">{{ error_msg }}</p>

    </div>
</body>
</html>

  

urls.py会传给views.fun 一个request变量,包含所有http参数。

request.method 包括get和post,post里,fun可以获取表单传过来的参数,然后进行orm操作。

表单还可以传文件到服务端,不过表单里要写enctype="multipart/form-data",在服务端指定存到路径。

另外,如果表单里有checkbox这种多选的input类型,在后台收到的就是一个list,需要用list = request.POST.getlist.

原文地址:https://www.cnblogs.com/jabbok/p/9273786.html