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

原文地址:https://www.cnblogs.com/ExMan/p/9337226.html

时间: 2024-10-07 10:32:02

Django来敲门~第一部分【4. 创建第一个模块应用】的相关文章

【3】Django创建第一个项目

天地所以能长且久者,以其不自生,故能长生. --老子<道德经> 写在前面:Django在学习的过程中,我们会参考官方文档,从两部分进行讲解,第一部分主要是一个入门项目的搭建开发,第二部分是核心的讲解.过程中可能会有一些配置或者技术点不会明确的讲解,入门项目要求是能写出代码.能跟着文档写出项目,能了解项目即可.其余的后续章节中会有详细介绍,此时~不用恐惧不用害怕不用担心,某些细节问题我们暂时可以不求甚解! 本节内容 项目结构了解 创建第一个项目 运行并访问我们的项目 1. Django创建项目的

python+Django创建第一个项目

1.首先搭建好环境 1.1 安装pyhton,Linux系统中,python是系统自带的所以就不用安装 1.2 安装Django框架 使用pip安装: pip install django 1.3 检查是否安装好 1.4 查看Django的管理工具---django-admin.py命令 2. 创建第一个项目 HelloWorld: 项目的容器. manage.py: 一个实用的命令行工具,可让你以各种方式与该 Django 项目进行交互. HelloWorld/__init__.py: 一个空

【VMCloud云平台】SCCM(五)创建第一个集合

继上一篇云平台完成SCCM部署篇之后,SCCM篇正式开始,今天将开始介绍SCCM创建第一个集合,集合作用跟GPO中的作用域是一样的,即有时候你需要对不同范围的机器进行分发操作或其他操作时则需要把范围规定起来(紫色为完成实施,红色为实施中): 1. 打开管理控制台,定位点客户端符合性: 2. 在设备集合上点击右键选择创建设备集合: 3. 输入新集合名称,并选择目标机器所在的集合: 4. 点击下一步,新建成员规则,选择直接规则: 5. 输入资源类型与规则: 6. 接着就会出现筛选出来的值,进行勾选:

Android使用AndEngine创建第一个程序

首先要把andengine.jar复制到libs文件夹里 01 package com.hu.anden; 02   03 import org.anddev.andengine.engine.Engine; 04 import org.anddev.andengine.engine.camera.Camera; 05 import org.anddev.andengine.engine.options.EngineOptions; 06 import org.anddev.andengine.

【scrapy】创建第一个项目

1)创建项目命令: scrapy startproject tutorial 该命令将在当前目录下创建tutorial文件夹 2)定义Item Items are containers that will be loaded with the scraped data;They are declared by creating a scrapy.Item class and defining its attibutes as scrapy.Field objects. import scrapy

什么是nodejs?nodejs的作用?创建第一个小实例

以下只是本人的理解如果错误请纠正: 1.nodejs:node是一个平台,是服务器端JavaScript的解析器,nodejs本身运行Google V8 JavaScript引擎,所以速度和性能非常好 2.nodejs旨在解决创建高性能的网络应用程序,可以编写每秒处理上万条同时访问物理机器的连接代码,并且可处理高并发和异步I/O node小实例:创建自己的第一个小实例,我用的是webstorm开发工具 1.编写代码:步骤 (1).引入http模块:require('http') (2).创建ht

ThinkPHP学习(二)理清ThinkPHP的目录结构及访问规则,创建第一个控制器

ThinkPHP的目录结构 回顾上一篇的安装目录: 目录对应关系 F:\\PHP├─index.php       入口文件├─README.md       README文件├─Application     应用目录├─Public          资源文件目录└─ThinkPHP        框架目录 thinkphp 的目录结构 ThinkPHP 的目录结构非常清晰和容易部署.大致的目录结构如下,以项目为基础进行部署. ┎━ThinkPHP 框架系统目录┃ ┝ ThinkPHP.ph

ASP.NET MVC 03 - 安装MVC5并创建第一个应用程序

不知不觉 又逢年底, 穷的钞票 所剩无几. 朋友圈里 各种装逼, 抹抹眼泪 MVC 继续走起.. 本系列纯属学习笔记,如果哪里有错误或遗漏的地方,希望大家高调指出,当然,我肯定不会低调改正的.(开个小玩笑.哈哈.) 参考书籍:<ASP.NET MVC 4 Web编程>.<ASP.NET MVC 4 高级编程>.<ASP.NET MVC 5 高级编程>.<C#高级编程(第8版)>.<使用ASP.NET MVC开发企业及应用>.度娘谷歌等. -= 安

convirt(二)—— 创建第一台虚机

1.拷贝cms公钥到managed上,cms依赖免秘钥的root执行环境 #非默认端口,你懂的 ssh-copy-id -i ~/.ssh/id_rsa.pub "-p port_number [email protected]" 2.managed上存放iso目录,拷贝镜像存放到该目录 #目录位置和名称随意,只是模板里指定的时候需要指定好即可 mkdir /opt/iso # ls /opt/iso/ CentOS-6.4-x86_64-bin-DVD1.iso 3.增加manage

PyQt5创建第一个窗体(正规套路)

一.Pyqt5 创建第一个窗体 很多人写窗体程序都是直接敲代码,不使用设计器,我个人不是很赞成这种做法.使用设计器的好处是直观.维护方便,尤其开发复杂窗体的效率高. 但是每次修改ui文件后,需要重新生成py文件,会将原来的内容覆盖掉,为了避免这种情况,引入了一个中间类.主要步骤如下: 1使用QtDesigner创建一个简单的对话框,保存成simpleDialog.ui. 2使用cmd,进入simpleDialog.ui文件所在的目录,运行命令pyuic5 simpleDialog.ui >ui_