python - django request请求问题求助
大家讲道理
大家讲道理 2017-04-18 09:18:22
0
4
702

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),
]



views.py
# -*- 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'])



index.html
<!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网站 出现了



请问这是什么问题啊 要怎么解决啊 ?
大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

membalas semua(4)
巴扎黑

Dalam Django, ralat berikut mungkin berlaku apabila menggunakan siaran:

Forbidden(403):
CSRF verification failed. Request aborted.
Reason given for failure:
    CSRF token missing or incorrect.

Ini kerana Django membantu kami mengaktifkan perlindungan terhadap serangan CSRF CSRF (pemalsuan permintaan merentas tapak) ialah permintaan merentas tapak berniat jahat atau serangan yang menyamarkan pengguna pelayan penyemakan imbas pengguna untuk mengakses tapak web yang disahkan dan melakukan beberapa operasi berniat jahat. Memandangkan penyemak imbas pengguna telah disahkan oleh tapak web, tapak web akan membenarkan operasi ini dilakukan dengan yakin (walaupun operasi ini tidak diperlukan oleh tapak web atau bukan secara sukarela oleh pengguna).

Jadi pelayan kami memerlukan beberapa langkah perlindungan. Kaedah perlindungan biasa ialah menggunakan token rawak yang dijana oleh pelayan dan memasukkannya ke dalam borang yang dihantar kepada klien Apabila klien menghantar semula borang, pelayan menyemak sama ada token itu dikeluarkan dengan sendirinya, dengan itu menghalang serangan.

Memandangkan terdapat settings.py lalai dalam MIDDLEWARE_CLASSES dalam fail 'django.middleware.csrf.CsrfViewMiddleware', Django akan memerlukan pengesahan token CSRF di sini Untuk menjadikan tapak web kami lebih selamat, kami masih mengikut peraturan permainan langkah demi langkah Ayuh!

Tambah <form> pada {% csrf_token %} dalam html seperti berikut:

...
         <form action="" method="post"> {% csrf_token %}
...

Ini akan menyelesaikan masalah


Soalan yang saya jawab: Python-QA

小葫芦
在form中添加{{ csrf_token }}后再试试,form如下:
<form action="{% url 'home_page_show' %}" method="POST">
    {% csrf_token %}
    <input type="text" name="username">
    <button id="btn">提交</button>
</form>
Peter_Zhu

<button id="btn">Serah</button> ditulis sebagai <input type="submit" value="submit">, sudah tentu {% csrf_token %} tidak boleh hilang

左手右手慢动作

Terdapat cara yang lebih mudah untuk mengulas konfigurasi csrf dalam fail tetapan. .

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan