通过14个入门实战案例教大家快速学习Python编程语言(python从入门到实践和Python编程快速上手)
321
2022-08-23
#yyds干货盘点#django学习之视图
django编写视图
创建一个 polls 目录,它的目录结构大致如下:
polls/ __init__.py admin.py apps.py migrations/ __init__.py models.py tests.py views.py
目录结构包括了投票应用的全部内容
打开 polls/views.py输入python代码:
#polls/views.pyfrom django.import HttpResponsedef index(request): return HttpResponse("Hello, world. You're at the polls index.")
这是 Django 中最简单的视图。如果想看见效果,我们需要将一个 URL 映射到它——这就是我们需要 URLconf 的原因了。
为了创建 URLconf,请在 polls 目录里新建一个 urls.py 文件。你的应用目录现在看起来应该是这样:
polls/ __init__.py admin.py apps.py migrations/ __init__.py models.py tests.py urls.py views.py
在 polls/urls.py 中,输入如下代码:
from django.urls import pathfrom . import viewsurlpatterns = [ path('', views.index, name='index'),]
URLconfs 中使用的 django.urls 函数
path()
path(route, view, kwargs=None, name=None)
返回一个元素,以便包含在 urlpatterns 中。例如:
from django.urls import include, pathurlpatterns = [ path('index/', views.index, name='main-view'), path('bio/
route 参数应该是一个字符串或 gettext_lazy() ,它包含一个 URL 模式。这个字符串可以包含角括号(就像上面的
view 参数是一个视图函数或 as_view() 的结果,用于基于类的视图。它也可以是一个 django.urls.include()。
kwargs 参数允许你向视图函数或方法传递附加参数。
re_path()
re_path(route, view, kwargs=None, name=None)
返回一个元素,以便包含在 urlpatterns 中。例如:
from django.urls import include, re_pathurlpatterns = [ re_path(r'^index/$', views.index, name='index'), re_path(r'^bio/(?P
route 参数应该是一个字符串或 gettext_lazy() ,它包含一个与 Python 的 re 模块兼容的正则表达式。字符串通常使用原始字符串语法(r''),因此它们可以包含像 /d 这样的序列,而不需要用另一个反斜杠来转义。当进行匹配时,从正则表达式中捕获的组会被传递到视图中 —— 如果组是命名的,则作为命名的参数,否则作为位置参数。值以字符串的形式传递,不进行任何类型转换。
view、kwargs 和 name 参数与 path() 相同。
include()
include(module, namespace=None)
include(pattern_list)
include((pattern_list, app_namespace), namespace=None)
一个函数,它接收一个完整的 Python 导入路径到另一个应该被 “包含” 在这里的 URLconf 模块。可以选择指定 application namespace 和 instance namespace,在这两个空间中,条目将被包含进去。
通常,应用程序的命名空间应该由包含的模块指定。如果设置了应用程序命名空间,namespace 参数可以用来设置不同的实例命名空间。
include() 也接受一个返回 URL 模式的迭代函数或一个包含这种迭代函数加上应用程序名称空间的二元元组作为参数。
参数:
module -- URLconf 模块(或模块名称)
namespace (str) -- 包含的 URL 条目的实例命名空间。
pattern_list -- 可迭代的 path() 和/或 re_path() 实例。
app_namespace (str) -- 被包含的 URL 条目的应用命名空间
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~