Django 实现提交表单

目录结构如下, 主要修改三个文件URL.py、views.py、index.html:

views.py:

from django.shortcuts import render,HttpResponse

def userInfo(request):
    userList = []


    #获取前端传递过来的值
    if request.method=="POST":
        username=request.POST.get("username",None)
        sex=request.POST.get("sex", None)
        mail=request.POST.get("email", None)

        print(username)
        print(sex)
        print(mail)
        #user={"username":username,"sex":sex,"email":mail}
       # userList.append(user)
        models.UserInfo.objects.create(
            username=username,
            sex=sex,
            email=mail
        )

        userList=models.UserInfo.objects.all()
    return render(request, "index.html",{"user_list":userList})
 

URL.py:

from django.contrib import admin
from django.urls import path
from blog import  views

urlpatterns = [
    path('admin/', admin.site.urls),
#添加了下边这一行,功能是重定向userInfo/的请求
    path('userInfo/',views.userInfo),
]

index.html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form action="/userInfo/" method="post">
    <p>姓名:<input type="text" name="username"></p>
    <p>性别:<input type="text" name="sex"></p>
    <p>邮箱:<input type="text" name="email"></p>.
    <p><input type="submit" value="submit"></p>

</form>
<hr>
<h1>用户:</h1>
<table border="1px">
    <tr>
        <td>姓名</td>
        <td>性别</td>
        <td>邮箱</td>
    </tr>

<!--模板语言的循环遍历-->
    {% for i in user_list %}
         <tr>
            <td>{{i.username}}</td>
            <td>{{ i.sex }}</td>
            <td>{{i.email }}</td>
        </tr>
    {% endfor %}


</table>
</body>
</html>

如果提示一个403 的错误,是Django 的一个安全机制,可以注释掉settings.py 的一行代码(MIDDLEWARE 下的

'django.middleware.csrf.CsrfViewMiddleware'

):

结果:

原文地址:https://www.cnblogs.com/gaizhongfeng/p/8474634.html