• Django 第二课 1.【URL与视图】


    视图函数【views.py】

    1:视图函数的第一个参数必须是request,这个参数绝对不能少

    2:视图函数的返回值必须是 djang.http.respomnse.HttpResponseBase 的子类的对象

    【url.py】传递参数

    ## url映射

    1:为什么回去url.py文件中寻找映射呢?

    是因为在 setting.py 文件中配置了 ROOT_URLCONFurl.py 。 所以django会去 url.py 中寻找

    2:在 url.py 中我们所有的映射,都应该放在 urlpatterns 这个变量中

    3:所有的映射不是随便写的,而是使用 path 函数 或者是 re_path 函数进行包装的

    ## url传参数

    1:采用在url中使用变量的方式:在path的第一个参数中,使用‘<参数名>’ 的方式可以传递参数。然后在视图函数中也要写一个参数,视图函数中的参数必须和url中的参数名称保存一致,不然就找不到这个参数,另外,url中可以传递多个参数

    2:采用查询字符串的方式: 在url中,不需要单独的匹配查询的字符串的部分。只需要在视图函数中使用request.GET.get('参数名称') 的方式来获取,示例代码

    def author_detail(request):
       author_id = request.GET['id']
       text = '作者的id是: %s' % author_id
       return HttpResponse(text)

    因为查询字符串使用的是‘GET’请求,所以我们通过‘request.GET’来获取参数,并且因为‘GET’是一个类似于字典的数据类型,所有获取值跟字典的方式都是一样的。

    ## url命名

    1:为什么需要url命名

    因为url是经常变化的,如果在代码中写死可能经常改代码。给url去个名字,以后使用url的时候就使用它的名字进行反转就可以了,就不需要写死url了

    2:如果给一个url指定名称?

    在 path 函数中,传递一个 name 参数

    urlpatterns = [
    
           path(' ',  views.index, name = 'index'),
           path('login/ ',  views.login, name = 'login')
    ]

    3: 应用命名空间

    在多个app之间,有可能产生同名的url。者时候为了避免反转url的时候产生混淆,可以使用应用命名空间,来区分。定义应用命名空间非常简单,只要在 ‘app’ 的 ‘url.py’ 中定义一个叫做  ‘app_name’ 的变量,来指定这个应用的命名空间即可。示例代码如下:

    #应用命名空间
    app_name = 'front'
    
    urlpatterns = [
    
           path(' ',  views.index, name = 'index'),
           path('login/ ',  views.login, name = 'login')
    ]

    以后在做反转的时候就可以使用 '应用命名空间:url名称' 的方式进行反转,示例代码如下

    login_url = reverse('front: login')



  • 相关阅读:
    IO模型
    协程
    线程
    进程总结
    HashMap和Hashtable有什么区别
    HashMap 1.7 与 1.8 的 区别,说明 1.8 做了哪些优化,如何优化的
    GC线程是否为守护线程?
    float f=3.4;是否正确?
    final、finally和finalized的区别?
    Eureka注册中心是什么?
  • 原文地址:https://www.cnblogs.com/nelsen-chen/p/9439044.html
Copyright © 2020-2023  润新知