前面我们创建了django项目,编写并启动了服务web服务,应用下面在项目中创建应用,视图开启我们的编写编写之旅。

在创建的视图应用中创建视图:
from django.contrib import admin from django.urls import path from hello_apps import views urlpatterns = [ # admin这个是系统自带的 path(admin/, admin.site.urls), path(hello/, views.hello), ]在urls中配置路径:
def _path(route, view, kwargs=None, name=None, Pattern=None): if isinstance(view, (list, tuple)): # For include(...) processing. pattern = Pattern(route, is_endpoint=False) urlconf_module, app_name, namespace = view return URLResolver( pattern, urlconf_module, kwargs, app_name=app_name, namespace=namespace, ) elif callable(view): pattern = Pattern(route, name=name, is_endpoint=True) return URLPattern(pattern, view, kwargs, name) else: raise TypeError(view must be a callable or a list/tuple in the case of include().) path = partial(_path, Pattern=RoutePattern) re_path = partial(_path, Pattern=RegexPattern)path中有五个参数,两个必传参数route、编写view;两个可传参数kwargs、应用name;Pattern默认值是视图None
route:路线,也就是编写配置url路径, view:视图函数,应用用于执行与正则匹配的视图url请求 kwargs:任意个关键字参数可以作为一个字典传递给目标视图函数 name:别名,为url路径取别名使用Pattern默认值是编写None,体现在下面这段代码上:
path = partial(_path,应用 Pattern=RoutePattern)在这里就引入了一个高阶函数的概念,偏函数,视图举例子如下:
print(int(11111, base=8))把字符串转成8进制的整数类型,如遇到一次还可以这样操作,b2b供应网如遇到多个变量进行八进制的转换就每次都要写base=8,那如果是下面这样写会不会就舒服些呢?
设置固定默认值:
def new_int(value, base=8): return int(value, base)使用partial创建偏函数,简单理解就是固定住默认值,返回一个新的函数,从而能更简单地调用:
from functools import partial new_type = partial(int, base=8) print(new_type(55555))以上创建偏函数说的均是关键字传参,还有*args传参,您可自行百度搜索或可查看python官网文档。
官方文档地址:https://docs.python.org/zh-cn/3/library/functools.html
再返回观看Pattern所传的关键字是RoutePattern,而RoutePattern利用正则来专门查找url路径的等一系列方法。
path = partial() 就是创建一个偏函数,并返回一个新函数,新函数是保留原函数参数的,只是做了一个默认值绑定:
path = partial(_path, Pattern=RoutePattern)有些时候可能你会有疑问,云南idc服务商为什么有的会加include
urlpatterns = [ path(hello/, include(hello.urls)) ]官方描述:函数 include() 允许引用其它 URLconfs。每当 Django 遇到 :func:~django.urls.include 时,它会截断与此项匹配的 URL 的部分,并将剩余的字符串发送到 URLconf 以供进一步处理。
实际就是根据你传的值再一次确认,是不是符合django要求的url配置
使用前要注意引包操作,不然会报:NameError: name include is not defined
from django.conf.urls import include访问
http://127.0.0.1:8000/hello/

成功进入第一个页面。
以上总结或许能帮助到你,或许帮助不到你,但还是希望能帮助到你,如有疑问、歧义,评论区留言会及时修正发布,谢谢!