Python django CSRF验证失败。请求中止

Python django CSRF验证失败。请求中止,python,django,python-2.7,django-forms,Python,Django,Python 2.7,Django Forms,我在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

我在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())
url(r'^durum/', db.durum),
<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>
我的URL.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())
url(r'^durum/', db.durum),
<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>
我的html文件:

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())
url(r'^durum/', db.durum),
<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>

{%csrf_令牌%}
硬质合金台面:

您应该按照“django方式”呈现模板。视图的工作方式是将模板作为普通html发送,而不是处理它。 试着这样做:

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:
    return render('your_template_name.html', context_instance=RequestContext(request))
这样,django将处理您的模板并呈现正确的csrf_令牌。我强烈建议您遵循djangoproject.com上的教程并使用ORM

您应该遵循“django方式”来呈现模板。视图的工作方式是将模板作为普通html发送,而不是处理它。 试着这样做:

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:
    return render('your_template_name.html', context_instance=RequestContext(request))
这样,django将处理您的模板并呈现正确的csrf_令牌。我强烈建议您遵循djangoproject.com上的教程并使用ORM

您应该遵循“django方式”来呈现模板。视图的工作方式是将模板作为普通html发送,而不是处理它。 试着这样做:

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:
    return render('your_template_name.html', context_instance=RequestContext(request))
这样,django将处理您的模板并呈现正确的csrf_令牌。我强烈建议您遵循djangoproject.com上的教程并使用ORM

您应该遵循“django方式”来呈现模板。视图的工作方式是将模板作为普通html发送,而不是处理它。 试着这样做:

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:
    return render('your_template_name.html', context_instance=RequestContext(request))

这样,django将处理您的模板并呈现正确的csrf_令牌。我强烈建议您遵循djangoproject.com上的教程并使用ORM

您应该使用django模板和RequestContext。 最快的检查方法是: 在应用程序文件夹中创建以下目录结构:

1.模板/myapp_名称 使用应用程序的名称,而不是项目名称

  • 创建文件my_template.html

  • 在您的视图中添加导入:

    从django.shortcuts导入渲染

  • 添加并用替换您的报税表

    return render('myapp_name/my_template.html')
    
    阅读有关配置模板目录的详细信息:

    阅读有关渲染的详细信息:

    注: 最好使用django表单,而不是您的方式: 以及基于类的视图而不是函数(相信我,它们可能看起来很复杂-它们真的很棒:

    另外,请尝试不要使用硬编码URL,而是使用
    它将为您完成所有工作!

    您应该使用django模板和RequestContext。 最快的检查方法是: 在应用程序文件夹中创建以下目录结构:

    1.模板/myapp_名称 使用应用程序的名称,而不是项目名称

  • 创建文件my_template.html

  • 在您的视图中添加导入:

    从django.shortcuts导入渲染

  • 添加并用替换您的报税表

    return render('myapp_name/my_template.html')
    
    阅读有关配置模板目录的详细信息:

    阅读有关渲染的详细信息:

    注: 最好使用django表单,而不是您的方式: 以及基于类的视图而不是函数(相信我,它们可能看起来很复杂-它们真的很棒:

    另外,请尝试不要使用硬编码URL,而是使用
    它将为您完成所有工作!

    您应该使用django模板和RequestContext。 最快的检查方法是: 在应用程序文件夹中创建以下目录结构:

    1.模板/myapp_名称 使用应用程序的名称,而不是项目名称

  • 创建文件my_template.html

  • 在您的视图中添加导入:

    从django.shortcuts导入渲染

  • 添加并用替换您的报税表

    return render('myapp_name/my_template.html')
    
    阅读有关配置模板目录的详细信息:

    阅读有关渲染的详细信息:

    注: 最好使用django表单,而不是您的方式: 以及基于类的视图而不是函数(相信我,它们可能看起来很复杂-它们真的很棒:

    另外,请尝试不要使用硬编码URL,而是使用
    它将为您完成所有工作!

    您应该使用django模板和RequestContext。 最快的检查方法是: 在应用程序文件夹中创建以下目录结构:

    1.模板/myapp_名称 使用应用程序的名称,而不是项目名称

  • 创建文件my_template.html

  • 在您的视图中添加导入:

    从django.shortcuts导入渲染

  • 添加并用替换您的报税表

    return render('myapp_name/my_template.html')
    
    阅读有关配置模板目录的详细信息:

    阅读有关渲染的详细信息:

    注: 最好使用django表单,而不是您的方式: 以及基于类的视图而不是函数(相信我,它们可能看起来很复杂-它们真的很棒:

    另外,请尝试不要使用硬编码URL,而是使用

    它将为您完成所有工作!

    首先,您应该将action=“/durum”更改为action=“”。因为您大部分时间都会发布到同一个url2nd,所以您不会呈现模板,因此永远不会创建csrf令牌。请尝试使用return render()如果你想使用平面HTML并直接执行SQL,我根本不明白你为什么要使用Django。因为我有linux server。我不擅长php或ASP。这不是我的观点。你为什么不实际使用Django提供的功能呢?特别是当你现在对SQL注入完全开放时:如果我发布
    foo;DROP TABLE durum;
    在表单中,您的所有数据都将被删除。首先,您应该将action=“/durum”更改为action=“”。因为您大部分时间都会发布到同一个url2nd,所以您不会呈现模板,因此永远不会创建csrf令牌。请尝试使用return render()如果你想使用平面HTML并直接执行SQL,我根本不明白你为什么要使用Django。因为我有linux server。我不擅长php或ASP。这不是我的观点。你为什么不实际使用Django提供的功能呢?特别是当你现在对SQL注入完全开放时:如果我发布
    foo;DROP TABLE durum;
    在您的表单中,您的所有数据都将被删除。首先,您应该将action=“/durum”更改为action=“”。因为您大部分时间都会发布到相同的url2nd,因此您不会呈现te