如何通过表单HTML发布数据?

时间:2015-07-08 09:06:44

标签: python html django html-form-post

我想通过表单将数据发布到服务器。我怎么能这样做?

<div class="panel-body">
    <form role="form" action="{% url 'login' %}" method="POST">
        {% csrf_token %}
        <div class="form-group">
            <label for="sender-email" class="control-label">Username:</label>
            <div class="input-icon"> <i class="icon-user fa"></i>
                <input id="sender-email" type="text" placeholder="Username" class="form-control email">
            </div>
        </div>
        <div class="form-group">
            <label for="user-pass" class="control-label">Password:</label>
            <div class="input-icon"> <i class="icon-lock fa"></i>
                <input type="password" class="form-control" placeholder="Password" id="user-pass">
            </div>
        </div>
        <div class="form-group">
            <input class="btn btn-primary btn-block" id="authenticate_user" type="submit" value="Submit">
        </div>
    </form>
</div>

我的views.py

@csrf_exempt
def signin(request):
    if request.method == 'POST':
        print request.POST.get('sender-email') #prints None
        username = request.POST['username'] # throws error, username not available.
        password = request.POST['password']

如何在不使用jquery的情况下发布数据?我知道通过AJAX jquery发布的方式,但不想这样做。

2 个答案:

答案 0 :(得分:2)

输入标记的'name'属性设置为request.GETrequest.POST的键。

为所有输入标记添加name属性。

<input name="username" id="sender-email" type="text" placeholder="Username" class="form-control email">

<input name="password" type="password" class="form-control" placeholder="Password" id="user-pass" >

答案 1 :(得分:0)

使用输入元素的name属性填充POST数据。更改您的id属性或相应添加name个属性。 E.g:

<input type="password" class="form-control" placeholder="Password" name="user-pass">

您还应该考虑使用form来更轻松地处理数据。