zoukankan      html  css  js  c++  java
  • Django项目目录介绍

    一个小问题:

    什么是根目录:就是没有路径,只有域名、。url(r'^$')

    补充一张关于wsgiref模块的图片

    一、MTV模型

    Django的MTV分别代表:

      Model(模型):和数据库相关的,负责业务对象与数据库的对象(ORM)

      Template(模板):放所有的html文件

               模板语法:目的是将白变量(数据库的内容)如何巧妙的嵌入到html页面中

      View(视图):负责业务逻辑,并在适当的时候调用Model和Template

      此外,Django还有一个URL分发器。它的作用是将一个个URL的页面请求分别发给不同的Views处理,Views再调用相应的Model和Template。

    二、Django基本命令

    1、下载Django:

    pip3 install django

    2、创建一个Django对象

    django-admin.py  startproject   项目名称
    django-admin.py  startproject    mysite

    创建成功后会生成这样一个工程。目录结构如下:

    • manage.py------启动文件 (Django项目里面的工具,通过它可以调用Django shell的数目和数据库等)
    • settings.py------包含了项目的一些设置,包括数据库信息、调试标志以及其他一些工作的变量。
    • urls.py-----------路径与视图函数的映射关系

    3、创建一个应用

    python3 manage.py startapp blog(应用名称)

    创建成功后会生成这样一个工程。目录结构如下:

     4、启动Django项目

    python3 manage.py runserver  8080

    这样我们的django就启动起来了!当我们访问:http://127.0.0.1:8080/时就可以看到:

    5、创建表命令

    python3 manage.py makemigrations
    
    python3 manage.py migrate

    三、视图层之路由配置系统(views)

    URL配置(URLconf)就像Django所支撑网站的目录。它的本质是URL与要为该URL调用的视图函数之间的映射表;

    你就是以这种方式告诉Django,对于这个URL调用这段代码,对于那个URL调用那段代码。

    '''
        
        urlpatterns = [
             url(正则表达式, views视图函数,参数,别名),
    ]
    
    
    参数说明:
    
        一个正则表达式字符串
        一个可调用对象,通常为一个视图函数或一个指定视图函数路径的字符串
        可选的要传递给视图函数的默认参数(字典形式)
        一个可选的name参数
    
        '''

    URLconf的正则字符串参数

    1、简单配置

    from django.conf.urls import url
    
    from . import views
    
    urlpatterns = [
        url(r'^articles/2003/$', views.special_case_2003),
        url(r'^articles/([0-9]{4})/$', views.year_archive),
        url(r'^articles/([0-9]{4})/([0-9]{2})/$', views.month_archive),
        url(r'^articles/([0-9]{4})/([0-9]{2})/([0-9]+)/$', views.article_detail),
    ]
    

     注意几点:

    '''
        NOTE:
    1、一旦匹配成功则不再继续
    2、若要从URL 中捕获一个值,只需要在它周围放置一对圆括号。
    3、不需要添加一个前导的反斜杠,因为每个URL 都有。例如,应该是^articles 而不是 ^/articles。
    4、每个正则表达式前面的'r' 是可选的但是建议加上。
    
    一些请求的例子:
    
        /articles/2005/3/ 不匹配任何URL 模式,因为列表中的第三个模式要求月份应该是两个数字。
        /articles/2003/ 将匹配列表中的第一个模式不是第二个,因为模式按顺序匹配,第一个会首先测试是否匹配。
        /articles/2005/03/ 请求将匹配列表中的第三个模式。Django 将调用函数
                           views.month_archive(request, '2005', '03')。
        '''
    #设置项是否开启URL访问地址后面不为/跳转至带有/的路径
    APPEND_SLASH=True

    无名分组和有名分组

    上面的示例使用简单的、没有命名的正则表达式组(通过圆括号)来捕获URL 中的值并以位置 参数传递给视图。在更高级的用法中,可以使用命名的正则表达式组来捕获URL

    中的值并以关键字 参数传递给视图。

    在Python 正则表达式中,命名正则表达式组的语法是(?P<name>pattern),其中name 是组的名称,pattern 是要匹配的模式。

    from app02 import views
    from django.conf.urls import url
    
    urlpatterns = [
      #无名分组
        url(r'^article/d{4}', views.year) ,
    
        url(r'^article/(d{4})$', views.year2),
        如果有多个匹配一样的时候,谁放在上面就匹配谁,上面的就会把下面的覆盖了
        正则加上括号,就是分组,会把分组的内容作为year2函数的参数传进去
        url(r'^article/(d{4})/(d{2})$', views.year_month),
    
        # 有名分组(就是给分组起个名字,这样定义的好处就是按照关键字参数去传参了,指名道姓的方式)
        url(r'^article/(?P<year>d{4})/(?P<month>d{2})$', views.year_month_hasname)
    ]

     捕获的值作为关键字参数而不是位置参数传递给视图函数。例如:

    /articles/2005/03/    
        请求将调用views.month_archive(request, year='2005', month='03')函数

    在实际应用中,这意味你的URLconf 会更加明晰且不容易产生参数顺序问题的错误 —— 你可以在你的视图函数定义中重新安排参数的顺序。当然,这些好处是以简洁为代价;有些开发人员认为命名组语法丑陋而繁琐。

    四、视图层之视图函数(views)

    一个视图函数,简称视图,是一个简单的Python 函数,它接受Web请求并且返回Web响应。响应可以是一张网页的HTML内容,一个重定向,一个404错误,一个XML文档,或者一张图片. . . 是任何东西都可以。无论视图本身包含什么逻辑,都要返回响应。代码写在哪里也无所谓,只要它在你的Python目录下面。除此之外没有更多的要求了——可以说“没有什么神奇的地方”。为了将代码放在某处,约定是将视图放置在项目或应用程序目录中的名为views.py的文件中。

    一个简单的视图函数

  • 相关阅读:
    数制转换
    禁止用户复制网页的内容
    TdxDBTreeView的节点移动排序
    cxgrid根据字段设置颜色
    获取用户IP
    在sql server中用存储过程发送邮件
    Delphi的DTS编程
    使年份适用于做有浏览器(IE和FireFox)
    用Delphi写扬声器音乐
    过滤字符串中的HTML代码(VBScript)
  • 原文地址:https://www.cnblogs.com/zhangrenguo/p/10376583.html
Copyright © 2011-2022 走看看