【问题标题】:What is the cycle for Django's single Function Based Views(FBV) handling both GET and POST requests for this code?Django 的单个基于函数的视图(FBV)处理此代码的 GET 和 POST 请求的周期是什么?
【发布时间】:2020-05-15 15:55:16
【问题描述】:

我一直在尝试了解视图和 Web 请求,但无法理解以下代码在内部是如何工作的,也无法弄清楚请求-响应循环如何在此代码中工作。

def todos_add(request):
    form = TodoForm(request.POST or None) #This is Django's in-built Form instance
    if form.is_valid():
        form.save()
        return redirect('/') #redirects to the homepage
    context = {"form" : form}
    return render(request, "main/todos_create.html", context)

todos_create.html 包含显示表单和提交数据的代码。如果表单有效,则将其存储在数据库中并重定向到主页。

感谢任何帮助或参考链接。谢谢。

【问题讨论】:

  • request.POST or None 是一个避免if request.method == 'POST' 检查的技巧。有关说明,请参阅 this blog post

标签: django django-forms django-views http-post http-get


【解决方案1】:

form = TodoForm(request.POST or None) 整个逻辑发生在这里。 每当调用视图时,它都会检查是否有任何POST 数据,如果是,则该请求被视为POST 请求,如果请求中没有提交数据,则它被视为GET 视图。

【讨论】:

    猜你喜欢
    • 2015-12-02
    • 1970-01-01
    • 1970-01-01
    • 2020-02-16
    • 2018-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-15
    相关资源
    最近更新 更多