文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

django表单提交

2023-01-30 22:04

关注

HTML表单是网站交互性的经典方式。 本章将介绍如何用Django对用户提交的表单数据进行处理。

比如一个简单的页面

blob.png

实现功能:

当提交一条数据时,网页下面展示提交的信息。

放在表格中,如果有多条,则追加显示


接着上一篇文章《django显示当前时间》继续写

修改mysite目录下的urls.py,增加一条路由userInfo

urlpatterns = [
    path('admin/', admin.site.urls),
    path('cur_time/', views.cur_time),
    path('userInfo/', views.userInfo),
]


修改blog目录下的views.py,增加函数userInfo

#定义全局字典
user_list = []
def userInfo(req):
    #判断请求类型
    if req.method == "POST":
        #获取表单数据,如果获取不到,则为None
        username = req.POST.get("username",None)
        sex = req.POST.get("sex", None)
        email = req.POST.get("email", None)
        # print(username,sex,email)
        #定义字典
        user = {'username':username,'sex':sex,'email':email}
        #追加到列表中
        user_list.append(user)

    # 将列表传给模板index.html
    return render(req, "index.html", {"user_list": user_list})


在templates目录下创建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="提交"/></p>
</form>

{#判断列表有数据的情况下#}
{% if user_list %}
    <hr/>
    <h1>数据展示</h1>
    {#border-collapse属性显示细线表格#}
 <table border="1" cellspacing="0" bordercolor="#000000" style="border-collapse:collapse;">
        <tr>
            <td>姓名</td>
            <td>性别</td>
            <td>邮箱</td>
        </tr>
        {#使用for循环遍历列表#}
 {% for i in user_list %}
            <tr>
                {#展示数据#}
 <td>{{i.username}}</td>
                <td>{{i.sex}}</td>
                <td>{{i.email}}</td>
            </tr>
        {#结束for循环#}
 {% endfor %}
    </table>
{#一定要写结束符#}
{% endif %}


</body>
</html>


修改settings.py文件,关闭csrf。全称为CSRF(Cross-site request forgery)跨站请求伪造

注释即可

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    # 'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

访问网页

http://127.0.0.1:8000/userInfo/

输入一条数据,点击提交

blob.png


网站底部会出现一条数据

blob.png


可以多增加几条数据

blob.png

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯