# DEBUG模式

  1. 开启debug模式后,修改项目代码时按下ctrl+s可重启项目;
  2. 项目中出现bug时,浏览器与控制台会打印错误信息;
  3. 在生产环境中禁止开启DEBUG模式,有很大的安全隐患;
  4. 将DEBUG设置为False时,必须设置ALLOWED_HOSTS。
    • ALLOWED_HOSTS :用来设置以后只能通过这个变量中的IP或域名来进行访问

视图函数

  1. 第一个参数必须是 request ; book_id 后可添加默认参数。
  2. 返回值必须是 ‘django.http.response.HttpResponse’ 的子类对象
     #(app)front中views.py
    from django.http import HttpResponse def index(request):
    return HttpResponse('网站首页') def books(requeset,book_id):
    text = '图书的ID是:%s' % book_id
    return HttpResponse(text) #项目urls.py
    from django.urls import path
    from front import views urlpatterns = [
    #http://127.0.0.1:8000/
    path('',views.index),
    #http://127.0.0.1:8000/book/1
    path('book/<book_id>/',views.books)
    ]

urls模块化

  1. 每个App的 urls 都放到自己的App进行管理,在App中新建一个 urls.py 文件来存储所有和这个App相关的 子url ,然后在项目的主 urls.py 文件下使用 include 来包含各个App的 urls.py 文件,如:

     #项目urls.py
    '''
    urlpatterns = [
    path('book/',include('book.urls'))
    ]
    '''  #book.urls为应用程序book的urls.py文件
  2. ‘App’的 urls.py 中,所有的url匹配也要放在变量 urlpatterns 中,否则找不到;
     #App的urls.py
    '''
    urlpatterns = [
    path('/detail/<book_id>/',views.book_detail)
    ]
    '''
  3. 项目的‘url’会根据 urls.py 和App中的 urls.py 进行拼接,注意不能多加斜杆。(得到的URL为:http://.../book/detail/1)

url命名

  1. 为App的‘ url ’命名,防止后期‘url’经常变动。后期反转时使用 name 定义的url名字。前面显示的 login 可变动;

      #app的urls.py
    '''
    path('login/',views.login,name='login')
    '''
  2. 存在多个App时,为防止同名的‘url’产生混淆,使用 ‘命名空间 ’app_name 来进行区分;
     #App的urls.py文件
    '''
    app_name = 'front’  #app的名称 urlpatterns = [
    path('login/',views.login,name='login')
    ]
    '''

    反转时使用 命名空间:url名称 进行反转

     app的urls.py文件
    '''
    return redirect(reverse(‘front:login’))   #反转到front应用程序的url页面(name=‘login’的值)。
    '''

# 应用(app)命名空间与实例命名空间:

  1. 一个App可使用多个URL实例进行映射,所以使用命名空间时容易发生混淆;使用 实例命名空间‘namespace’ 来解决该问题

     #项目urls.py
    '''
    path('login1/',include('front.urls',namespace='login1'))
    path('login2/',include('front.urls',namespace='login2'))
    '''
  2. 反转时使用实例命名空间指定具体的url;
     #应用程序urls.py
    '''
    def idnex(request):
    username = request.GET.get('username')
    if username:
    return HttpResponse('front首页')
    else:
    #获取当前命名空间
    current_namespace = request.resolver_match.namespace
    return redirect(reverse('%s:login' % current_namespace))
    '''

# include()函数:

  1. include(module,namespace=None)

    • module:子 url 的模块字符串;
    • namespace:指定实例命名空间时必须先指定应用命名空间app_name;
  2. include((pattern_list,app_namespace),namespace=None)
    • 函数的第一个参数可以为一个字符串或者一个元组,为元组时第一个参数为App的 url.py 模块的字符串,第二个参数为应用命名空间;

       '''
      path(('login/',include('front.urls','login'),namespace='book'))
      '''
  3. include(pattern_list) :列表中装 path 或 re_path 。
     '''
    path('movies/',include([
    path(' ',views.movie),
    path('list/',views.movie_list),
    ]))
    '''

# re_path

  1. 作用比 ‘path’ 强大,写 url 时可使用正则表达式;(无特殊情况时建议使用:path)
  2. 写正则表达式时使用原生字符串,即以 ‘r’ 开头的字符串;
  3. 正则表达式使用圆括号定义变量,参数有名字时使用 ?P<参数名字> ,然后在后面添加正则表达式的规则。
     '''
    re_path(r"^list/(?P<year>\d{4}/$",views.book_list)
    '''

# reverse函数

  1. 在反转 ur l时,如需添加参数,可传递 kwargs 参数到reverse函数中

     #应用urls.py
    '''
    return redirect(reverse('book',kwargs={'book_id':1,'page':2}))
    '''
  2. 如需添加字符串的参数,则必须手动进行拼接
     #在没输入关键参数时自动跳转到登录页面,next告诉下一步跳转的位置
    '''
    return redirect(reverse('login') + "?next=/")
    '''
    #类似于知乎的首页登录跳转
    #知乎网站:https://www.zhihu.com/signup?next=%2F (%2F = /)
    #进入时自动跳转到 signup 的url登录页面,后面告知下一步跳转到首页

URL简单梳理的更多相关文章

  1. C#正则表达式_简单梳理_Emoji表情字符处理

    A-最近一直有接触到正则表达式,现对其做简单梳理: private const RegexOptions OPTIONS = RegexOptions.IgnoreCase | RegexOption ...

  2. 机器学习&数据挖掘笔记(常见面试之机器学习算法思想简单梳理)

    机器学习&数据挖掘笔记_16(常见面试之机器学习算法思想简单梳理) 作者:tornadomeet 出处:http://www.cnblogs.com/tornadomeet 前言: 找工作时( ...

  3. [转]机器学习&数据挖掘笔记_16(常见面试之机器学习算法思想简单梳理)

    机器学习&数据挖掘笔记_16(常见面试之机器学习算法思想简单梳理) 转自http://www.cnblogs.com/tornadomeet/p/3395593.html 前言: 找工作时(I ...

  4. RocketMQ 简单梳理 及 集群部署笔记【转】

    一.RocketMQ 基础知识介绍Apache RocketMQ是阿里开源的一款高性能.高吞吐量.队列模型的消息中间件的分布式消息中间件. 上图是一个典型的消息中间件收发消息的模型,RocketMQ也 ...

  5. Memcached概念、作用、运行原理、特性、不足简单梳理(1)

    大家可能对memcached这种产品早有了解,或者已经应用在自己的网站中了,但是也有一些朋友从来都没有听说过或者使用过.这都没什么关系,本文旨在从各个角度综合的介绍这种产品,尽量深入浅出,如果能对您现 ...

  6. SpringSecurity配置,简单梳理

    生活加油:摘一句子: “我希望自己能写这样的诗.我希望自己也是一颗星星.如果我会发光,就不必害怕黑暗.如果我自己是那么美好,那么一切恐惧就可以烟消云散.于是我开始存下了一点希望—如果我能做到,那么我就 ...

  7. 简单梳理JavaScript垃圾回收机制

    JavaScript具有自动垃圾回收机制,即执行环境会负责管理代码执行过程中使用地内存. 这种垃圾回收机制的原理很简单:找出那些不再继续使用的变量,然后释放其占用的内存.为此,垃圾收集器会按照固定的时 ...

  8. 简单梳理下 Vue3 的新特性

    在 Vue3 测试版刚刚发布的时候,我就学习了下 Composition API,但没想到正式版时隔一年多才出来,看了一下发现还是增加了不少新特性的,在这里我就将它们一一梳理一遍. 本文章只详细阐述 ...

  9. 机器学习&数据挖掘笔记_16(常见面试之机器学习算法思想简单梳理)

    前言: 找工作时(IT行业),除了常见的软件开发以外,机器学习岗位也可以当作是一个选择,不少计算机方向的研究生都会接触这个,如果你的研究方向是机器学习/数据挖掘之类,且又对其非常感兴趣的话,可以考虑考 ...

随机推荐

  1. 20165305 苏振龙《Java程序设计》第七周学习总结

    第十一章 JDBC技术在数据库开发中占有很重要的地位,JDBC操作不同的数据库仅仅是连接方式上的差异而已,使用JDBC的应用程序一旦和数据库建立连接,就可以使用JDBC提供的API操作数据库. 当查询 ...

  2. Google自动广告,将广告代码放置在 HTML 中的什么位置?

    Google自动广告,将广告代码放置在 HTML 中的什么位置? 为自动广告生成广告代码后,您需要将此代码放置在要展示广告的每个网页中.您应将广告代码放置在网页的 <head> 标记(或正 ...

  3. hashCode 一致性hash 算法

    1 如果两个对象相同,那么它们的hashCode值一定要相同.也告诉我们重写equals方法,一定要重写 hashCode方法,同一个对象那么hashcode就是同一个(同一个对象什么都是相同的).2 ...

  4. [转载] 关于出现“使用 UNION、INTERSECT 或 EXCEPT 运算符合并的所有查询必须在其目标列表中有相同数目的表达式”错误的可能原因

    1. 对于该问题确实存在UNION前后SELECT语句中的列数不同导致:2. 以下为个人遇到的一种可能:在项目开发中由于有张表是动态的,即有个基础表,其他的表按年月根据基础表来生成动态表,动态表结构和 ...

  5. Jmeter压力测试和接口测试

    jmeter是apache公司基于java开发的一款开源压力测试工具,体积小,功能全,使用方便,是一个比较轻量级的测试工具,使用起来非常简单.因为jmeter是java开发的,所以运行的时候必须先要安 ...

  6. CAT Caterpillar ET Diagnostic Adapter has a powerful function

    As a excellent Professional Diagnostic Tools products, CAT Caterpillar ET Diagnostic Adapter has a p ...

  7. linux 下面压缩、解压.rar文件

    一,解压问题 在网上下东西的时候,经常会遇到.rar后缀的文件,我用tar解压,解压不出,上网找啊找,一直没找到什么合适的工具来压缩和解压.rar后缀的文件,现在我找到了. 二,rar和unrar安装 ...

  8. Oracle12.2中新增的分区功能

    Oracle 12.2已经发布一段时间,公网上也可以下载试用.针对12.2,partitioning(分区)也有了不少增强. 自动列表分区 多字段列表分区 只读分区 分区维护时允许过滤 在线转换非分区 ...

  9. git获取一个版本相对于另一个版本新增,修改,删除的文件

    git diff --name-status 00ef237ef0f0a4b8bd9609c2b6d570472028212d abf13b4d58abbb05a7d494cdc205d025978a ...

  10. win10常见问题处理办法

    1.当笔记本连接wifi时,提示,无internet,安全,而手机能正常连接wifi时: cmd(需管理员权限)执行命令 netsh winsock reset 出现已重置,重启电脑 解决方法 2.当 ...