• Django来敲门~第一部分【4. 创建第一个模块应用】


    成若缺,其用不弊。大盈若冲,其用不穷。大直若屈。大巧若拙。大辩若讷。静胜躁,寒胜热。清静为天下正 
    ——老子《道德经》

    本章内容

    • 创建应用(app)
    • 开发第一个视图(View)
    • URL访问配置的嵌套(urls)

    1. 创建项目的子模块应用

    上一节内容中,我们创建了一个django项目mysite/,在项目的骨架的基础上,我们再创建基于项目的一个子模块投票模块,模块名称暂时定义为polls

    进入项目目录,执行如下命令,在mysite/项目基础上创建一个模块应用polls

    python3 manage.py startapp polls

    上述命令执行完成之后,会在我们的项目文件夹中,自动生成一个polls应用模块文件夹,包含模块需要的基本文件结构,如下:


    项目应用文件目录结构

    2. 创建模块应用中的第一个视图

    模块中的视图对应的是views.py文件,打开polls/views.py文件,创建如下的方法

    1.  
      # 引入需要的模块
    2.  
      from django.http import HttpResponse
    3.  
       
    4.  
      # 定义一个处理方法
    5.  
      def index(request):
    6.  
      return HttpResponse("Hello Django!")

    视图创建完成后,我们要将视图和对应的URL地址进行关联,项目中的url地址映射的主要配置文件是urls.py,在polls模块中创建urls.py配置文件,并修改polls/urls.py文件内容如下:

    1.  
      # 引入需要的模块
    2.  
      from django.conf.urls import url
    3.  
      from . import views
    4.  
       
    5.  
      # 配置url地址和view视图的映射关系
    6.  
      urlpatterns = [
    7.  
      url(r"^$", views.index, name="index")
    8.  
      ]

    配置好我们模块应用中的urls地址映射之后,需要将这个模块的映射关系包含到我们的根模块mysite的映射关系中才能生效,编辑mysite/urls.py修改如下:

    1.  
      from django.conf.urls import include, url
    2.  
      from django.contrib import admin
    3.  
       
    4.  
      urlpatterns = [
    5.  
      url(r"^admin/", admin.site.urls),
    6.  
      url(r"^polls/", include("polls.urls"))
    7.  
      ]

    在上述配置中,我们通过urlpatterns来关联映射关系,整体关系如下图所示:


    请求流程图


    1.客户端发起请求:http://localhost:8000/polls

    2.项目接收到用户请求,url地址-> polls/

    3.进入项目的映射文件urls.py中进行正则匹配:url(r"^polls", include("polls/urls")),开始打开通过include包含的polls.urls子模块映射文件polls/urls.py

    4.进入项目子模块polls的映射文件中进行匹配,由于polls/路径已经匹配通过,开始匹配polls/后面的路径-> 路径为:"";
    进入polls/urls.py中查找对应的路径->url(r"^$", view.index, name="index")

    5.匹配到views.index,开始打开子模块的views.py视图文件,执行index视图方法

    6.views.py中的视图方法index()返回了一条字符串,打印到我们浏览器的页面上

    OK,经过上面的分析之后,我们启动项目python3 manage.py runserver,然后通过浏览器进行访问


    浏览器访问子模块应用

    附注:url(regex, view, kw, name)参数解析

      • 参数regex:这是一个正则表达式,用于匹配接收到的url路径,Django会按照顺序进行正则表达式的匹配,匹配成功就会调用指定的资源
      • 参数view:当第一个正则表达式的路径匹配成功时,Django就会开始调用view参数指向的视图函数,并且将django.http.HttpRequest内置对象作为函数的第一个参数传递给函数并且调用执行函数
      • 参数kw:任意关键字都可以作为参数传递给函数
      • 参数name:给当前的url命名,命名之后就可以在任意地方使用这个url
  • 相关阅读:
    WCF 第八章 安全 确定替代身份(中)使用AzMan认证
    WCF 第八章 安全 总结
    WCF 第八章 安全 因特网上的安全服务(下) 其他认证模式
    WCF Membership Provider
    WCF 第八章 安全 确定替代身份(下)模仿用户
    WCF 第八章 安全 因特网上的安全服务(上)
    WCF 第九章 诊断
    HTTPS的七个误解(转载)
    WCF 第八章 安全 日志和审计
    基于比较的排序算法集
  • 原文地址:https://www.cnblogs.com/ExMan/p/9337226.html
Copyright © 2020-2023  润新知