zoukankan      html  css  js  c++  java
  • django-表单POST方法提交实现完整过程

    1 进入虚拟环境

        workon h1                                                 
    

    2 创建一个django项目test

       django-admin startproject test
    

    3 创建一个应用booktest

     python manage.py startapp booktest
    

    4 在应用下面设置视图函数,由于表单使用post方式提交,所以要定义2个视图函数,

    因为一个视图用来处理url地址用来返回一个表单页面,另一个视图用来处理表单

    提交后的响应结果.

    views.py代码如下:

      # coding:utf-8
      from django.shortcuts import render
    
      # 函数postTest1用来匹配表单对应的url,匹配成功后返回一个表单页面
    
      def postTest1(request):
          return render(request, 'booktest/postTest1.html')
    
      # 函数postTest2用来处理表单提交后服务器响应的结果
    
         def postTest2(request):
    
              # user = request.POST.get('user')
    
              user = request.POST['user']
    
              pwd = request.POST['password']
    
              gender = request.POST['gender']
    
              hobby = request.POST.getlist('hobby')
    
              context = {'user':user, 'pwd':pwd, 'gender':gender, 'hobby':hobby}
    
              return render(request, 'booktest/postTest2.html', context)
    

    5 配置URL

    1 根级url配置,在settings.py里面发现

     ROOT_URLCONF = 'test.urls' 
    
     即根级url配置要在test包里面的urls.py进行配置
    

    2 打开urls.py,在urlpatterns的值[]里面,添加以下代码

     url(r'^booktest/', include('booktest.urls')),
    
     url(r'^booktest/', include('booktest.urls')),
    
     2行代码的意思是,对url进行正则匹配(不包含域名端口和参数部分),如匹配到
    
     字符串booktest/,则进入到包booktest下面的urls.py继续往下匹配
    

    3 在booktest应用下面的urls.py进行url匹配

     代码如下:
    
     from django.conf.urls import url
     import views
     urlpatterns = [
    
        url(r'^postTest1/$', views.postTest1),
    
        url(r'^postTest2/$', views.postTest2),
    
        ]
    
      url(r'^postTest1/$', views.postTest1), 代码意思是当字符串为postTest1时
    
      进行匹配成功,然后由视图里面的函数postTest1来处理
    

    6 创建模板templates目录,在templates目录下面创建应用booktest,在booktest目录

    下面创建2个模板postTest1.html和postTest2.html,

    设置模板的路径 ‘DIRS’: [os.path.join(BASE_DIR, ‘templates’)],

    注释掉 # ‘django.middleware.csrf.CsrfViewMiddleware’,

    postTest1.html代码如下:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
          "http://www.w3.org/TR/html4/loose.dtd">
    
    <html>
    
     <head>
        <title>Title</title>
     </head>
    
    <body>
    
        <form action="/booktest2/postTest2/" method="post">
    
          用户名: <input type="text" name="user"><br>
    
          密码: <input type="password" name="password"><br>
    
          性别: <input type="radio" name="gender" value="1" checked>男 
    
          <input type="radio" name="gender" value="0">女 <br>
    
          爱好: <input type="checkbox" name="hobby" value="walking">散步
    
          <input type="checkbox" name="hobby" value="swimming">游泳
    
          <input type="checkbox" name="hobby" value="play football">踢足球
            <br>
    
          <input type="submit" value="提交">
    
        </form>
    
      </body>
    </html>
    

    模板postTest2.html内容如下,返回POST类字典对象里面的值

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
           "http://www.w3.org/TR/html4/loose.dtd">
    
    <html>
        <head>
              <title>Title</title>
         </head>
    
        <body>
               用户名:{{user}} <br>
               密码: {{pwd}} <br>
               性别: {{gender}} <br>
               爱好:
               {%for h in hobby%}
               {{h}}
               {%endfor%}
         </body>
    </html>
    

    8 终端输入python manage.py runserver进行开发项目测试,分别输入

    http://127.0.0.1:8000/booktest/postTest1进入表单页面

    表单填写完后提交,则返回一个服务器响应的结果,即postTest2.html页面.

  • 相关阅读:
    DUILib的代码分析
    source$表坏块
    树莓派风扇自动控制随想
    给qq机器人加上bing搜索
    龙芯fedora28日常生存指南
    攻防世界 when_did_you_born
    部署PWN题Docker环境
    NPUCTF2020 EzRSA
    金融密码杯 The Art of War
    Machine Learning & Deep Learning Fundamentals
  • 原文地址:https://www.cnblogs.com/silence-cc/p/8970384.html
Copyright © 2011-2022 走看看