【问题标题】:Django:get field values using views.py from html formDjango:使用来自html表单的views.py获取字段值
【发布时间】:2015-05-27 12:40:06
【问题描述】:

大家好,我有一个 HTML 表单如下:

<body class="">
    <div class="navbar navbar-static-top navbar-inverse"></div>
    <div style="height:20%; width:30%; margin-top:12%; margin-left:40%;">
        <div class="list-group">
            <form role="form">
            <br/>
                <div class="form-group input-group">
                    <span class="input-group-addon"><i class="fa fa-circle-o-notch"  ></i></span>
                    <input type="text" name="Username" class="form-control" placeholder="Username" />
                </div>
                <div class="form-group input-group">
                    <span class="input-group-addon"><i class="fa fa-tag"  ></i></span>
                    <input type="text" name="first_name" class="form-control" placeholder="FIRST_NAME" />
                </div>
                <div class="form-group input-group">
                    <span class="input-group-addon"><i class="fa fa-tag"  ></i></span>
                <input type="text" name="last_name" class="form-control" placeholder="LAST_NAME" />
                </div>
                ...
                ...
                <a href="/submit" class="btn btn-success ">POST</a>
            </form>
        </div>
    </div>
</body>

点击帖子后,我将其重定向到views.py。谁能告诉我如何将表单所有字段的字段值放入views.py。在此先感谢

【问题讨论】:

    标签: django forms


    【解决方案1】:

    每个输入都应该有一个名称属性:

    <input type="text" name="username" class="form-control"
                                          placeholder="Desired Username" />
    

    然后在您看来,您可以使用request.POSTrequest.GET 类字典对象访问该数据(这取决于&lt;form&gt; 标记的method 属性):

    def register(request):
        username = request.POST['username']
        ...
    

    但是您不应该以这种 PHPish 方式呈现/处理表单。了解django forms

    【讨论】:

    • 请求参数区分大小写,因此您应该以request.GET['Username']访问用户名。 GET 是表单的默认请求方法。要将其更改为 POST,请添加 &lt;form method="POST"&gt; 属性。
    • 如何检查我是否输入了值
    • 假设我想将我在视图中获得的信息显示到其他 html 页面中,是否可能
    • 是的,将以下行添加到register() 函数:return render(request, 'mytemplate.html', {'username': username}),然后在mytemplate.html 中输出带有{{ username }} 标记的值。看教程:docs.djangoproject.com/en/1.7/intro/tutorial03/…
    • CSRF 验证失败。请求中止。发生错误
    【解决方案2】:

    在python后端捕获数据

    对于 POST 请求:

    def register(request):
        username = request.POST.get('username')
    

    用于 GET 请求

    def register(request):
        username = request.GET.get('username')
    

    .get 在较早的答案中丢失

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-25
      • 2020-08-22
      • 1970-01-01
      • 1970-01-01
      • 2015-08-29
      • 1970-01-01
      相关资源
      最近更新 更多