【4】Django 创建第一个模块应用
**大成若缺,其用不弊。大盈若冲,其用不穷。大直若屈。大巧若拙。大辩若讷。静胜躁,寒胜热。清静为天下正 **
——老子《道德经》
本章内容
- 创建应用(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 创建第一个模块应用的更多相关文章
- 【3】Django创建第一个项目
天地所以能长且久者,以其不自生,故能长生. --老子<道德经> 写在前面:Django在学习的过程中,我们会参考官方文档,从两部分进行讲解,第一部分主要是一个入门项目的搭建开发,第二部分是 ...
- Django 创建第一个项目(转)
转自(http://www.runoob.com/django/django-first-app.html) 前面写了不少python程序,由于之前都是作为工具用,所以命令行就足够了,最近写的测试用例 ...
- django创建第一个项目helloworld
环境:centos 7,已安装python 3.6环境 1.安装django并创建django第一个项目 1.1.使用pip安装django# pip install Django或指定安装版本# p ...
- python+Django创建第一个项目
1.首先搭建好环境 1.1 安装pyhton,Linux系统中,python是系统自带的所以就不用安装 1.2 安装Django框架 使用pip安装: pip install django 1.3 检 ...
- Django创建第一个应用
一.创建第一个应用,并在settings.py中添加. python manage.py startapp article 二.创建第一个模型 class Article(models.Model): ...
- 吴裕雄--天生自然Django框架开发笔记:Django 创建第一个项目
Django 管理工具 安装 Django 之后,您现在应该已经有了可用的管理工具 django-admin.可以使用 django-admin 来创建一个项目: 可以来看下django-admin ...
- Django创建第一个应用App(3)
创建一个投票的应用app.现在已经创建好了一个项目,就是有了一个框架,有了框架之后就可以往框架里面填写一些自己的需求,就是放一些功能在里面即可.一个项目可以包含多个应用app,一个应用app可以属于多 ...
- Django来敲门~第一部分【4. 创建第一个模块应用】
成若缺,其用不弊.大盈若冲,其用不穷.大直若屈.大巧若拙.大辩若讷.静胜躁,寒胜热.清静为天下正 ——老子<道德经> 本章内容 创建应用(app) 开发第一个视图(View) URL访问配 ...
- django创建第一个视图-4
创建视图 打开 demo 应用下的 views.py 文件,添加代码 from django.http import HttpResponse from django.shortcuts import ...
随机推荐
- php debug二三事
最近php相关项目遇到了一些问题,处理起来让人感觉挺有意思,寥寥记下. 1.php执行后常驻内存里,需要kill掉该进程再重启,才能让修改后的代码生效. 之前有一次组里小伙伴修改了一个长期后台进程运行 ...
- vbs use
VBScript中SendKeys的妙用 标签: vbscriptbasicmicrosoftinsertdeletestring 2011-05-26 15:29 1830人阅读 评论(0) 收藏 ...
- 黑马程序猿——————java基础
一.软件开发 软件是什么? 软件是简单的来说,计算机数据和指令的集合,数据(比方年龄,性别).指令及时告诉计算机怎样对他进行处理.计算机但是没有人那么聪明啊! 二.图形化界面(GUI),主要特点就是. ...
- hdfs du命令是算的一份数据
As you can see, hadoop fsck and hadoop fs -dus report the effective HDFS storage space used, i.e. th ...
- 如何检查ASTGO是限制并发的体验版呢?
由于网上曾经流传过一段时间来自ASTGO官方的ASTGO体验版(下载地址:http://www.51voip.org/post/33.html),这个版本有个特色就是安装后不需要激活码激活即可打通电话 ...
- Prime Path(bfs)
http://poj.org/problem?id=3126 题意:给两个四位数n,m,将n变成m需要多少步,要求每次只能改变n的某一位数,即改变后的数与改变前的数只有一位不同,且每次改变后的数都是素 ...
- Hardwood Species(map)
http://poj.org/problem?id=2418 题意:给定一系列字符串,要求按字典序升序输出每个串,并输出每个串出现的百分比. 用map做的,交c++A了,G++ WA..so sad. ...
- java常见面试题03-String,StringBuffer,StringBuilder的区别
面试题 A:String,StringBuffer,StringBuilder的区别 1:String 内容不可变,StringBuffer.StringBudiler可变 2:StringBu ...
- Android插件化原理解析——Hook机制之动态代理
转自 http://weishu.me/2016/01/28/understand-plugin-framework-proxy-hook/ 使用代理机制进行API Hook进而达到方法增强是框架的常 ...
- 2.Dubbo开源分布式服务框架(JAVA RPC)
1. Dubbo介绍 Dubbox是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能RPC(即远程调用)实现服务的输出和输入功能, 可以和Spring框架无集成.Dubbo是一款高性能 ...