目录介绍

按照上一篇初学Django首先建立起一个默认站点,生成如下的目录结构:

manage.py 一种命令行工具,允许你以多种方式与该 Django 项目进行交互。 键入python manage.py help,看一下它能做什么。 你不需要编辑这个文件;在这个目录下生成它纯是为了方便启动服务 (通过执行 python manage.py runserver 9200 ,就可以通过http://127.0.0.1:9200访问新建的站点了)

testsite目录中有如下几个文件:

其中具体的意义我也还不甚了解,之后慢慢看吧。

启程hello world!

站点中我们需要新增自己的页面(视图),那开始创建自己的helloworld吧。

创建视图

在testsite目录创建名为views.py的文件,当然文件名你随便啦,view还算是个比较好的选择吧。

在视图中输入如下代码便创建好了我们第一个视图。

from django.http import HttpResponse
def hello(request):
return HttpResponse("Hello world")

我们来看一下这个视图:

1、从django.http导入HttpResponse类

2、定义一个hello方法,称为视图函数,它接收一个参数request。

每个视图函数至少要有一个参数,通常叫做request。它是一个触发视图函数、包含当前web请求信息的对象,是类django.http.HttpRequest的实例。这里先记着就好,例子中没有用到它。

3、返回一个HttpResponse对象,包含文本信息"Hello world"。

这里主要讲的是: 一个视图就是Python的一个函数。这个函数第一个参数的类型是HttpRequest;它返回一个HttpResponse实例。为了使一个Python的函数成为一个Django可识别的视图,它必须满足这两个条件。 (也有例外)

路由映射

我们创建好了视图,怎么来展示在网页上呢?那就是URLconf(对应文件urls.py)的作用了。知道mvc的童鞋应该很容易理解,它主要就是用来做路由映射的,即你定义一个url,对应Django的一个视图函数。

打开文件urls.py看到如下信息:

这里我们看到一个admin的路由,你可以尝试一下在http://127.0.0.1:9200/admin会是什么效果。

我们先不用理解这些是做什么的,删除掉系统自建的剩余如下信息:

在urls.py中导入模块,添加路由 url(r'^hello/$',hello),

查看效果

现在在浏览器输入 http://127.0.0.1:9200/hello  看是什么效果呢?

我们的‘Hello world!’输出来。

URLconf

为什么URLconf要这么写呢?(url(r'^hello/$',hello), )

前半部分是一个正则表达式,用来匹配URL,如果匹配,则调用视图函数hello。

如果你的URL是这样 http://127.0.0.1:9200/hello?a=1

那么将不会调用hello这个视图函数,因为正则不匹配($匹配结尾)不匹配。

如果你写成url(r'hello',hello), 那么http://127.0.0.1:9200/hello?a=1 和   http://127.0.0.1:9200/hello1 还有http://127.0.0.1:9200/ttthello1 都能匹配,他们将会调用同一个hello视图。

说到底,就是正则表达式和URL路径的匹配关系。

完!

这就是我们第一个自定义的网页了。虽然是静态的,但好歹已经可以添加内容了,慢慢来,以后还有好多要学呢。

Django建立helloworld自定义页面的更多相关文章

  1. Django入门之自定义页面

    1.创建项目,创建app django-admin.py startproject HelloWord python3 manage.py startapp sync_one #第二步需要进入Hell ...

  2. django的404,500错误自定义页面的配置

    django404,500错误自定义页面: 1.设置settings文件 DEBUG = False ALLOWED_HOSTS = ['127.0.0.1', 'localhost']或者ALLOW ...

  3. C#综合揭秘——通过修改注册表建立Windows自定义协议

    引言 本文主要介绍注册表的概念与其相关根项的功能,以及浏览器如何通过连接调用自定义协议并与客户端进行数据通信.文中讲及如何通过C#程序.手动修改.安装项目等不同方式对注册表进行修改.其中通过安装项目对 ...

  4. 【转】C#综合揭秘——通过修改注册表建立Windows自定义协议

    引言 本文主要介绍注册表的概念与其相关根项的功能,以及浏览器如何通过连接调用自定义协议并与客户端进行数据通信.文中讲及如何通过C#程序.手动修改.安装项目等不同方式对注册表进行修改.其中通过安装项目对 ...

  5. Django关于设置自定义404和安装debug-toolbar的笔记

    Django关于设置自定义404和安装debug-toolbar的笔记 关于设置404 先做好404页面,然后在views.py文件中做好映射,最后是在urls.py做好路由,而这个urls.py必须 ...

  6. 第三百一十四节,Django框架,自定义分页

    第三百一十四节,Django框架,自定义分页 自定义分页模块 #!/usr/bin/env python #coding:utf-8 from django.utils.safestring impo ...

  7. 通过修改注册表建立Windows自定义协议

    引言 本文主要介绍注册表的概念与其相关根项的功能,以及浏览器如何通过连接调用自定义协议并与客户端进行数据通信.文中讲及如何通过C#程序.手动修改.安装项目等不同方式对注册表进行修改.其中通过安装项目对 ...

  8. 运维开发笔记整理-使用Django编写helloworld

    运维开发笔记整理-使用Django编写helloworld 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.   一.创建Django项目 1>.创建Django项目 djang ...

  9. 帝国CMS自定义页面的添加与目录式链接的处理

    需求: 1.将某一本地前端自定义页面模板,导入到帝国系统,应用到网站 2.将导入的页面在站点中打开为目录式链接 www.abc.com/softlink/ 环境: 1.windows服务器 2.帝国C ...

随机推荐

  1. 封装一些数据库SQLCipher的方法(增、删、改、查)

    上一篇随笔只是简单的说了一下使用SQLCipher框架,介绍的比较笼统,可能看一遍之后更加蒙圈了,为了更好的使用这个数据库,整理了我在公司项目的需要用的方法,包括创建表,插入数据,更新数据,搜索查询数 ...

  2. ios 项目被拒绝各种理由

    . Terms and conditions(法律与条款) 1.1 As a developer of applications for the App Store you are bound by ...

  3. Quartz2D介绍

    一.什么是Quartz2D Quartz 2D是⼀个二维绘图引擎,同时支持iOS和Mac系统 Quartz 2D能完成的工作: 绘制图形 : 线条\三角形\矩形\圆\弧等 绘制文字 绘制\生成图片(图 ...

  4. oracle函数trunc的使用

    1.日期比较时精确到日,可以使用 TRUNC(sysdate,'dd')函数.函数支持格式有:yyyy MM  dd  hh Mi可以用   select TRUNC(sysdate,'yyyy') ...

  5. 微信OPENID授权方法

    今天搞了下微信授权, 总结了下微信的授权规则与步骤 先来几个关键字 Openid  微信ip(属于唯一指向公众号的id) redirect_uri  授权回调地址 State 回调地址带参数 Appi ...

  6. 使用 phpMailer 基于(SMTP) 发送邮件

    PHPMailer是一个用于发送电子邮件的PHP函数包.它提供的功能包括:在发送邮时指定多个收件人,抄送地址,暗送地址和回复地址.支持多种邮件编码包括:8bit,base64,binary和quote ...

  7. python成长之路第三篇(1)_初识函数

    目录: 函数 为什么要使用函数 什么是函数 函数的返回值 文档化函数 函数传参数 文件操作(二) 1.文件操作的步骤 2.文件的内置方法 函数: 一.为什么要使用函数 在日常写代码中,我们会发现有很多 ...

  8. 回文数猜想(hd1282)

    回文数猜想 Problem Description 一个正整数,如果从左向右读(称之为正序数)和从右向左读(称之为倒序数)是一样的,这样的数就叫回文数.任取一个正整数,如果不是回文数,将该数与他的倒序 ...

  9. SQL别名解析(转载)

    通过使用 SQL,可以为列名称和表名称指定别名(Alias). 其实,select列的时候取别名有三种方法,这三种方法并不是所有数据库都适用. 方法一.直接在字段名称后面加上别名,中间以空格隔开. 方 ...

  10. 红外遥控系统原理及单片机软件解码程序,我的编写经历(C版本)

    应该说现在每一块开发板都带有红外模块,并且大都配置了相应的程序.但其实自己动手写解码程序,更能锻炼自己所学,且不谈程序写的如何,这个过程中肯定是受益良多的.现在我就把我花一下午写出的解码程序与大家分享 ...