Django“请求”对象

时间:2014-02-20 19:31:40

标签: django

几周前我刚刚开始学习Django和Python,并且负责使用Django / Python / MySQL组合管理表单处理的项目。我的背景是C ++,所以如果Python / Django语法中有任何C ++类比,可以随意引用它们。

到目前为止,我理解HTTPRequest对象的作用,但无法理解这段代码:

@login_required(login_url="/some_directory/")
def xyz(request):
    item1 = request.GET['item1']
    user = request.user
    page = Page.objects.get(title = item1)
    item1info = {}
    perm_all = get_perms(user,page)
    item1info["industry"] = page.industry.split(',')

对于第一行,“@”做什么? “@login_required”是一个Django命令还是由编码器定义的?

我知道“def xyz(request)”定义了一个函数,但参数“request”是在另一个文件(urls.py)中预先定义的吗?

request.GET ['item1']有什么作用?它是从查询字符串中检索元素“item1”的值吗?

1 个答案:

答案 0 :(得分:3)

  • “@”是DecoratorLogin required是Django提供的装饰器,需要当前用户(在request.user中)登录才能访问此视图。

  • “请求”参数在被Django本身调用时传递给View函数。任何有效的视图函数都必须作为参数

  • 接收请求
  • Request.GET是一个python字典,包含GET方法在请求中传递的所有参数(作为URL查询字符串的一部分)。