我在django項目上創建表單。我有一個錯誤csrf失敗。django CSRF驗證失敗。請求中止
我wievs.py文件:
def durum(request):
if request.method == "POST":
adi = request.POST.get('durum')
db = sql.connect("/usr/connect.db")
im = db.cursor()
db.execute("INSERT INTO durum VALUES ("+str(adi)+")")
db.commit()
asd = "Durum mesajı '"+str(adi)+"' olarak değiştirildi."
return render(request, asd, {})
else:
BASE = os.path.dirname(os.path.abspath(__file__))
return HttpResponse(open(os.path.join(BASE, "html/durum.html")).read())
我的urls.py文件:
url(r'^durum/', db.durum),
我的HTML文件:
<form action="/durum" method="post">
{% csrf_token %}
<table>
<tr><th>Durum Mesajı:</th><td><input type="text" name="durum"/></td></tr>
<tr><th></th><td><input type="submit" value="Ekle"/></td></tr>
</table>
首先,您應該將action =「/ durum」更改爲action =「。」。因爲大部分時間都發布到相同的URL – Alvaro
第二,因爲您沒有呈現模板,所以從不創建csrf標記。嘗試使用return render() – Alvaro
我不明白你爲什麼要使用Django,如果你想使用平面HTML並直接執行SQL。 –