Django基础(1:架构流程与目录)

Django 是 python 做 web 开发的一个很著名的框架,很多大型网站(比如豆瓣、YouTube)都用它开发,下面就来介绍一下 Django 的架构原理

原理

1. MVT设计模式

         M(Models):数据模型,直接映射到数据库

         V(Views):功能视图,编写你的业务功能

         T(Templates):页面模板,就是显示在浏览器的 HTML 文件

2. 架构流程图

      流程说明:

       ①:客户端输入 url ,向服务器发送一个 HTTP 请求

       ②:WSGI 是一个能响应请求的接口部件,初学可以不管它,它把 url 传给 URLs 路由

       ③:URLs 根据收到的 url,调用对应绑定的 Views, 所以 URLs 相当于导航

       ④:Views 是业务功能模块,它先从 Models 模块拿需要的数据

              Model 是数据模型模块,它通过 ORM 技术实现从类到数据库的映射,这样我们就可以不关心数据库而只对类进行修改

       ⑤:Views 从Templates 拿需要的页面模板

       ⑥:Views 根据 Models 和 Templates 的数据,实现自己的功能后把 HttpResponse 发送给负责响应的 WSGI

              不难看出,Views 是整个框架的核心,它不仅关联了 Models、Templates,还实现了业务功能

       ⑦:WSGI 把响应的内容发给客户端(浏览器),用户就能看到想要的网页了

创建方法与目录介绍

学习方法强烈推荐官网教程https://docs.djangoproject.com/zh-hans/2.1/intro/

Django 官方教程错误

在使用通用视图后,index.html 内容应如下:

{#<li><a href="{% url 'polls:detail' question.id %}">{{ question.question_text }}</a></li>#}
<ul>
    {% for question in latest_question_list %}
        <li><a href="{% url 'polls:detail' question.id %}">{{ question.question_text }}</a></li>
    {% endfor %}
</ul>

1. 环境准备

    Anaconda3、 一个虚拟环境、用命令 conda install django 安装 django

2. 创建项目

  (1) 命令:django-admin startproject mysite (mysite 是自己命名的项目名称)

  (2)目录文件:

      mysite/        :根目录只是你项目的容器
          manage.py      :一个让你用各种方式管理 Django 项目的命令行工具
          mysite/       :包含你的项目文件的纯 Python 包,里面的文件重要
              __init__.py   :一个空文件,仅仅告诉 Python 这个目录是一个 Python 包而已
              settings.py   :整个 Django 项目的配置文件,配置数据库、app、服务器等
              urls.py   :url 的入口、总目录,负责把 url 导流到对应的 app 的 urls.py (app 稍后介绍)
              wsgi.py   :项目的运行在 WSGI 兼容的Web服务器上的入口,先不管它

3. 创建应用

  (1)项目和应用的区别:

          应用是一个专门做某件事的网络应用程序——比如博客系统,或者公共记录的数据库,或者简单的投票程序。项目则是一个网站使用的配置和应用的集合

 (2)在 manage.py 同级目录下创建 (也就是跟第二个 mysite 同级,就在第一个 mysite 之下)

 (3)命令:python manage.py startapp myapp  (myapp 是自己命名的应用名称)

 (4)目录文件:         

     myapp/   :该 app 的文件容器
         __init__.py  :初始化文件,一个空文件,仅仅告诉 Python 这个目录是一个 Python 包而已
         admin.py   :管理员文件,管理员的相关功能在这儿编写
         apps.py  :app 配置文件,先不管
         migrations/  :数据库的迁移记录文件的目录,里面有自动生成的迁移记录
             __init__.py  :初始化文件,空文件,作用同上面的初始化文件一样
         models.py  :数据模型文件,在这儿按规定格式用类来定义你的数据模型,直接映射到数据库
         tests.py  :测试文件,里面存放测试用例,测试用例不会改变数据库和其他模块
         views.py  :视图文件,里面编写业务功能,关联 Models、Templates,返回结果

Django 编写典型流程

已经创建 app 并在 settings 里面注册了 app 前提下

1. 创建数据模型 (MODELs)

            数据模型通过 ORM 技术映射到数据库,这样就可以直接操作模型,而不需要关心数据库

            过程中自动生成对应的数据库操作语句,但需要了解数据库 API 的使用方法

2. 创建管理员 (admin)

            admin 是管理员站点,这样就可以直接管理数据而不用去数据库修改

            过程中自动生成管理员界面和对数据库的操作方法

3.  规划路由 (URLs)

           url 是路由目录,目录分为总目录和分目录:

         (1)project/urls 是总目录,也是 url 的入口,负责把 url 导流到分目录

         (2) app/urls 是分目录,每条 url 绑定一个 VIEWs 里面的一个功能函数,其中 url 里的参数用 '<>' (中括号)包裹起来, name 实现对此条 url 的命名,app_name 用于设置命名空间,解析格式为:'namespace: name'   参数

         (3)如果匹配不到 url ,Django 会自动调用 404 视图

4. 编写视图 (VIEWS)

           视图是 Django 的功能模块,主要任务有:

         (1)从对应的 URLs 接收参数

         (2)从模型(Models)导入数据

         (3)从模板(Templates)绑定模板

         (4)根据需要,利用参数、模型、模板编写功能代码

         (5)在页面返回 HttpResponse 对象或者 Http404 异常 

            ps:开发过程中,能使用通用视图的,优先使用通用视图

5. 设计模板 (Templates)

        (1) 模板就是 HTML 页面

        (2)注意模板语言写法:

                 变量:'{{   }}'  包裹

                 语句:'{%  %}'  包裹,成对出现,表示到哪儿结束

                 属性:' . '  获取,eg:{{ date.attr }}

                 过滤变量值:用 '|' 进行管道过滤,eg:{{ data.attr|attr:"x,x,x"}}

                 模板继承:格式:'{% extends "base.html" %}'

这样对 Django 的架构、原理、流程和目录就了解得差不多了,后面我们就根据流程来做个最简单的项目

猜你喜欢

转载自blog.csdn.net/Jeeson_Z/article/details/82711620