美文网首页
02--Django项目的MTV开发模式

02--Django项目的MTV开发模式

作者: Roger田翔 | 来源:发表于2019-06-19 09:39 被阅读0次

    一、Django 处理 HTTP 请求

    Web 应用的交互过程其实就是 HTTP 请求与响应的过程。
    Django 作为一个 Web 框架,也能接收浏览器发来的 HTTP 请求,返回相应的 HTTP 响应。那么:

    • Django 如何接收 HTTP 请求?
    • Django 如何处理这个 HTTP 请求?
    • Django 如何生成 HTTP 响应?

    对于如何处理这些问题,Django 有其一套规定的机制。我们按照 Django 的规定,就能开发出所需的功能。

    Django 如何接收 HTTP 请求

    Django 接收 HTTP 请求,主要通过 urls.py 这个文件将 URL 地址解析到对应的 VIEWS里面

    from django.contrib import admin
    from django.urls import path
    from about import about_views  # new
    from django.conf.urls import include  # new
    
    urlpatterns = [
        path('admin/', admin.site.urls),
        path('abc/', include('about.urls')),  # new
        path('xyz/', about_views.index),  # new
    ]
    

    这里使用了两种方式来解析 URL 地址

    1. abc 路径地址转发到 about 应用的 urls.py 模块,由 about 应用处理,地址将 abc/路径进行拼接
    from django.urls import path
    from . import views
    
    urlpatterns = [
        path('123', views.index),
    ]
    

    相当于解析了 http://127.0.0.1:8000/abc/123

    1. xyz 路径地址转发到 about 应用的 views.py 模块的 index 方法,由 index 处理改请求
    from django.shortcuts import render
    
    # Create your views here.
    def index(request):
        return render(request,'about_me.html')
    

    相当于解析了 http://127.0.0.1:8000/xyz

    Django 如何处理这个 HTTP 请求

    Django 处理 HTTP 请求,主要通过 views.py 这个文件,上面我们说过 urls.py 模块将地址转发到对应的 views.py 模块的具体方法中处理,然后方法会返回结果。

    Django 如何生成 HTTP 响应

    views.py 模块的具体方法中处理地址请求时,会返回结果。

    二、HTML模版与静态资源

    模版与资源
    1. 当我们再 render 里面返回 about_me.html 时,页面可能会报 TemplateDoesNotExist 错误,这个时候需要在setting中TEMPLATES的DIRS里面加上templates的目录
    TEMPLATES = [
        {
            'DIRS': [os.path.join(BASE_DIR, 'templates')],
        },
    ]
    

    setting中 BASE_DIR 的定义,可以获取项目的绝对路径
    BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
    os.path.abspath(__file__) 可以获得当前文件的绝对路径

    1. 当html页面正常打开,但是css文件404时,这个时候需要在setting中加上静态文件的地址
    STATIC_URL = '/static/'
    STATICFILES_DIRS = [
        os.path.join(BASE_DIR, 'static')
    ]
    

    三、项目配置流程

    项目配置流程
    1. 上图展示了一个最简单的项目配置的流程
    2. 在图中,上面三步是在创建项目的初期完成的,完成后不需要变动
    3. 中间三步,是后台处理的核心,也是我们需要经常改动的地方
    4. 最后的Html和css则是前端需要关注和处理的地方

    Django的MTV

    • Model(模型):数据库相关的操作(ORM)
    • Template(模版):模板语法--->将变量(数据库数据)如何巧妙嵌入html页面中
    • View(视图):逻辑处理
    • 另外,Django还有一个urls分发器:路径与视图函数的映射关系

    相关文章

      网友评论

          本文标题:02--Django项目的MTV开发模式

          本文链接:https://www.haomeiwen.com/subject/zofgfctx.html