Maison > Questions et réponses > le corps du texte
urls.py
from django.conf.urls import url
from django.contrib import admin
from blog import views
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^$', views.index),
url(r'^abc$',views.handler),
]
# -*- coding: utf-8 -*-
from django.shortcuts import render
from django.http import HttpResponse
# Create your views here.
def index(request):
return render(request,"index.html")
def handler(request):
return HttpResponse("<p>name:</p>" + request.POST['username'])
<!doctype html>
<html>
<head>
<meta charset="UTF-8"/>
<title>index page</title>
</head>
<body>
<form action="abc" method="POST">
<input type="text" name="username">
<button id="btn">提交</button>
</form>
</body>
</html>
我在谷歌浏览器下点击这个提交后出现了
我又直接打开abc网站 出现了
巴扎黑2017-04-18 09:20:22
Dans Django, l'erreur suivante est susceptible de se produire lors de l'utilisation de post :
Forbidden(403):
CSRF verification failed. Request aborted.
Reason given for failure:
CSRF token missing or incorrect.
C'est parce que Django nous aide à activer la protection contre les Attaques CSRF CSRF (cross-site request forgery) est une requête intersite malveillante ou une attaque qui déguise l'utilisateur. serveur de navigation de l'utilisateur pour accéder à un site Web authentifié et effectuer certaines opérations malveillantes. Le navigateur de l'utilisateur ayant été authentifié par le site Internet, celui-ci permettra d'effectuer ces opérations en toute confiance (même si ces opérations ne sont pas requises par le site Internet ou ne sont pas volontaires de la part de l'utilisateur).
Notre serveur a donc besoin de quelques mesures de protection. Une méthode de protection courante consiste à utiliser un jeton aléatoire généré par le serveur et à l'inclure dans le formulaire envoyé au client. Lorsque le client renvoie le formulaire, le serveur vérifie si le jeton a été émis par lui-même, empêchant ainsi les attaques.
Comme il y a un settings.py
par défaut dans MIDDLEWARE_CLASSES
dans le fichier 'django.middleware.csrf.CsrfViewMiddleware'
, Django exigera ici une vérification du jeton CSRF. Afin de rendre notre site Web plus sécurisé, nous suivons toujours les règles du jeu étape par étape. Allez!
Ajoutez <form>
à {% csrf_token %}
en html comme suit :
...
<form action="" method="post"> {% csrf_token %}
...
Cela résoudra le problème
Questions auxquelles j'ai répondu : Python-QA
高洛峰2017-04-18 09:20:22
在form中添加{{ csrf_token }}后再试试,form如下:
<form action="{% url 'home_page_show' %}" method="POST">
{% csrf_token %}
<input type="text" name="username">
<button id="btn">提交</button>
</form>
天蓬老师2017-04-18 09:20:22
<button id="btn">Submit</button> est écrit comme <input type="submit" value="submit">, bien sûr, {% csrf_token %} ne peut pas manquer
ringa_lee2017-04-18 09:20:22
Il existe un moyen plus simple de commenter la configuration csrf dans le fichier de paramètres. .