• Python 之 Django


    Django

    1、django后台请求处理过程

    找到setting文件中ROOT_URLCONF所指向的文件,它告诉django,这个站点中所有被用到的模块都在ROOT_URLCONF指向的文件中。按顺序逐个匹配URLconf里的URLpatterns,当找到这个匹配 的URLpatterns就调用相关联的view函数,并把 HttpRequest 对象作为第一个参数。

    运行过程:
    进来的请求传入/hello/.
    Django通过在ROOT_URLCONF配置来决定根URLconf.
    Django在URLconf中的所有URL模式中,查找第一个匹配/hello/的条目。
    如果找到匹配,将调用相应的视图函数
    视图函数返回一个HttpResponse
    Django转换HttpResponse为一个适合的HTTP response, 以Web page显示出来。

    摘录:

    1、运行 django-admin.py startproject mysite 命令在当前目录创建一个 mysite 目录

    备注:如果发现找不到该命令,是因为django的安装目录没有添加到系统路径中。解决方法是将django的安装目录添加到系统变量中的path路径中。

    2、新建的工程中各个文件的作用

    __init__.py :让 Python 把该目录当成一个开发包 (即一组模块)所需的文件。
    manage.py :一种命令行工具,可让你以多种方式与该 Django 项目进行交互。
    settings.py :该 Django 项目的设置或配置。
    urls.py :该 Django 项目的 URL 声明,即 Django 所支撑站点的内容列表

    3、django自带服务器的缺点

    尽管对于开发来说,这个开发服务器非常得棒,但一定要打消在产品级环境中使用该服务器的念头。在同一时间,该服务器只能可靠地处理一次单个请求,并且没有进行任何类型的安全审计。

    4、url文件中的正则表达式

    模式包含了一个尖号(^)和一个美元符号($)。这些都是正则表达式符号,并且有特定的含义: 上箭头要求表达式对字符串的头部进行匹配,美元符号则要求表达式对字符串的尾部进行匹配。
    最好还是用范例来说明一下这个概念。 如果我们用尾部不是$的模式’^hello/’,那么任何以/hello/开头的URL将会匹配,例如:/hello/foo 和/hello/bar,而不仅仅是/hello/。类似地,如果我们忽略了尖号(^),即’hello/$’,那么任何以hello/结尾的URL将会匹配,例如:/foo/bar/hello/。如果我们简单使用hello/,即没有^开头和$结尾,那么任何包含hello/的URL将会匹配,如:/foo/hello/bar。因此,我们使用这两个符号以确保只有/hello/匹配,不多也不少。

    5、正则表达式

    符号匹配
    . (dot) 任意单一字符
    d 任意一位数字
    [A-Z] A 到 Z中任意一个字符(大写)
    [a-z] a 到 z中任意一个字符(小写)
    [A-Za-z] a 到 z中任意一个字符(不区分大小写)
    + 匹配一个或更多 (例如, d+ 匹配一个或 多个数字字符)
    [^/]+ 一个或多个不为‘/’的字符
    零个或一个之前的表达式(例如:d? 匹配零个或一个数字)
    * 匹配0个或更多 (例如, d* 匹配0个 或更多数字字符)
    {1,3} 介于一个和三个(包含)之前的表达式(例如,d{1,3}匹配一个或两个或三个数字)
    6、django处理请求过程
    所有均开始于setting文件。
    当你运行python manage.py runserver,脚本将在于manage.py同一个目录下查找名为setting.py的文件。这个文件包含了所有有关这个Django项目的配置信息,均大写: TEMPLATE_DIRS , DATABASE_NAME , 等. 最重要的设置时ROOT_URLCONF,它将作为URLconf告诉Django在这个站点中那些Python的模块将被用到。
    当访问 URL /hello/ 时,Django 根据 ROOT_URLCONF 的设置装载 URLconf 。 然后按顺序逐个匹配URLconf里的URLpatterns,直到找到一个匹配的。 当找到这个匹配 的URLpatterns就调用相关联的view函数,并把 HttpRequest 对象作为第一个参数。
    7、url配置松耦合:在Django的应用程序中,URL的定义和视图函数之间是松 耦合的,换句话说,决定URL返回哪个视图函数和实现这个视图函数是在两个不同的地方。 这使得 开发人员可以修改一块而不会影响另一块。
  • 相关阅读:
    BFS visit tree
    Kth Largest Element in an Array 解答
    Merge k Sorted Lists 解答
    Median of Two Sorted Arrays 解答
    Maximal Square 解答
    Best Time to Buy and Sell Stock III 解答
    Best Time to Buy and Sell Stock II 解答
    Best Time to Buy and Sell Stock 解答
    Triangle 解答
    Unique Binary Search Trees II 解答
  • 原文地址:https://www.cnblogs.com/nelsen-chen/p/9138980.html
Copyright © 2020-2023  润新知