Django POST form usage, djangopost form
The environment is as follows: django 1.7.8.
1. This error message will appear during the POST form.
Access prohibited (403) CSRF Verification Failed. corresponding interruption. helpReason given for failure: CSRF token missing or incorrect. in general, this can occur when there is a genuine Cross Site Request Forgery, or when Django's CSRF mechanic has not been used correctly.
For POST forms, you need to ensure: Your browser is accepting cookies. the view function passes a request to the template's render method. in the template, there is a {% csrf_token %} template tag inside each POST form that targets an internal URL. if you are not using CsrfViewMiddleware, then you must use csrf_protect on any views that use the csrf_token template tag, as well
As those that accept the POST data. You're seeing the help section of this page because you have DEBUG = True in your Django settings file. Change that to False, and
Only the initial error message will be displayed. You can customize this page using the CSRF_FAILURE_VIEW setting.
No. Check the above prompt to prevent CSRF, that is, security, and cross-site request forgery.
Follow the prompts above.{% Csrf_token %}, add the following in the from Form
The added html code is as follows.
{% extends "base.html" %}{% block title %} hello{% endblock %}{% block content %} <div class="container"> <form class="form-signin" action="/login_webmail/" method='post'>{% csrf_token %}
Focus: {% csrf_token %} After from}
Follow the prompts on the official website and Baidu.
The code changes of views. py are as follows: Mainly return render_to_response('index.html ', context_instance = RequestContext (request ))
** Context_instance = RequestContext (request )**
from django.http import HttpResponseimport datetimefrom django.shortcuts import render_to_response#postfrom django.template import RequestContext#postdef webindex(request): return render_to_response('index.html',context_instance=RequestContext(request))
View method of received views
def login_webmail(request): if 'inputUserName' in request.POST: message = request.POST['inputUserName'] else: message = "Not inputUserName" return render_to_response('test_post.html',{'test_post_name':message})
Test again. OK. Summary. There are only two steps.
1. Add {% csrf_token %} to the from form}
2. Add the from django. template import RequestContext import item to the view, and add context_instance = RequestContext (request) to the return result)
Then OK. It seems very simple. For new users, refer.