**大成若缺,其用不弊。大盈若冲,其用不穷。大直若屈。大巧若拙。大辩若讷。静胜躁,寒胜热。清静为天下正 **

——老子《道德经》

本章内容

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

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

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

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

python3 manage.py startapp polls

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

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

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

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

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

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

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

from django.conf.urls import include, url
from django.contrib import admin urlpatterns = [
url(r"^admin/", admin.site.urls),
url(r"^polls/", include("polls.urls"))
]

在上述配置中,我们通过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

【4】Django 创建第一个模块应用的更多相关文章

  1. 【3】Django创建第一个项目

    天地所以能长且久者,以其不自生,故能长生. --老子<道德经> 写在前面:Django在学习的过程中,我们会参考官方文档,从两部分进行讲解,第一部分主要是一个入门项目的搭建开发,第二部分是 ...

  2. Django 创建第一个项目(转)

    转自(http://www.runoob.com/django/django-first-app.html) 前面写了不少python程序,由于之前都是作为工具用,所以命令行就足够了,最近写的测试用例 ...

  3. django创建第一个项目helloworld

    环境:centos 7,已安装python 3.6环境 1.安装django并创建django第一个项目 1.1.使用pip安装django# pip install Django或指定安装版本# p ...

  4. python+Django创建第一个项目

    1.首先搭建好环境 1.1 安装pyhton,Linux系统中,python是系统自带的所以就不用安装 1.2 安装Django框架 使用pip安装: pip install django 1.3 检 ...

  5. Django创建第一个应用

    一.创建第一个应用,并在settings.py中添加. python manage.py startapp article 二.创建第一个模型 class Article(models.Model): ...

  6. 吴裕雄--天生自然Django框架开发笔记:Django 创建第一个项目

    Django 管理工具 安装 Django 之后,您现在应该已经有了可用的管理工具 django-admin.可以使用 django-admin 来创建一个项目: 可以来看下django-admin ...

  7. Django创建第一个应用App(3)

    创建一个投票的应用app.现在已经创建好了一个项目,就是有了一个框架,有了框架之后就可以往框架里面填写一些自己的需求,就是放一些功能在里面即可.一个项目可以包含多个应用app,一个应用app可以属于多 ...

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

    成若缺,其用不弊.大盈若冲,其用不穷.大直若屈.大巧若拙.大辩若讷.静胜躁,寒胜热.清静为天下正 ——老子<道德经> 本章内容 创建应用(app) 开发第一个视图(View) URL访问配 ...

  9. django创建第一个视图-4

    创建视图 打开 demo 应用下的 views.py 文件,添加代码 from django.http import HttpResponse from django.shortcuts import ...

随机推荐

  1. Codeforces 2018-2019 ICPC, NEERC, Southern Subregional Contest

    2018-2019 ICPC, NEERC, Southern Subregional Contest 闲谈: 被操哥和男神带飞的一场ACM,第一把做了这么多题,荣幸成为7题队,虽然比赛的时候频频出锅 ...

  2. hdu 2988(最小生成树 kruskal算法)

    Dark roads Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total ...

  3. bzoj 3598 [ Scoi 2014 ] 方伯伯的商场之旅 ——数位DP

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3598 数位DP...东看西看:http://www.cnblogs.com/Artanis/ ...

  4. 77.招聘信息管理 EXTJS 页面

    1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8&quo ...

  5. Java 8 实战 P3 Effective Java 8 programming

    目录 Chapter 8. Refactoring, testing, and debugging Chapter 9. Default methods Chapter 10. Using Optio ...

  6. 想要学好C/C++,我到底要看多少书才能成为一个合格的C/C++工程师?

    如何学好C语言 这可能是很多朋友的问题,我以前也有这样的感觉,编程编到一定的时候,发现能力到了瓶颈,既不深,也不扎实,半吊子.比如:你长期地使用Java和.NET ,这些有虚拟机的语言对于开发便利是便 ...

  7. POJ 1118 求平面上最多x点共线

    题意:给你n个点的坐标.求一条直线最多能穿过多少个点. 思路:枚举(n^2)+求斜率+排序 (复杂度n^2logn)大功告成 //By: Sirius_Ren #include <cmath&g ...

  8. shell 实用命令学习

    查找文件 -iname 大小写不敏感 “*.log” .log后缀的文件 -type d 文件类型为目录的 find ./ -name 'index.html' 查找当前目录,及其子目录下文件

  9. HBase、Hive、MapReduce、Hadoop、Spark 开发环境搭建后的一些步骤(export导出jar包方式 或 Ant 方式)

    步骤一 若是,不会HBase开发环境搭建的博文们,见我下面的这篇博客. HBase 开发环境搭建(Eclipse\MyEclipse + Maven) 步骤一里的,需要补充的.如下: 在项目名,右键, ...

  10. SQLServer 里的三种条件判断的用法:Where GroupBy Having

    HAVING 子句对 GROUP BY 子句设置条件的方式与 WHERE 子句和 SELECT 语句交互的方式类似.WHERE 子句搜索条件在进行分组操作之前应用:而 HAVING 搜索条件在进行分组 ...