2019独角兽企业重金招聘Python工程师标准>>>

在上一章使用django-admin.py startproject tests制作的项目中的tests文件夹里,创建一个views.py文件.

1.在views文件中编写如下代码

from django.http import HttpResponsedef hello(request):
return HttpResponse('Hello World')

上面这段代码仅仅返回一个HttpResponse对象,而这个对象之包含文本“Hello World”.

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

2.打开urls.py文件,在原来的基础上添加

from django.conf.urls import url
from django.contrib import adminfrom tests.views import hellourlpatterns=[
url(r'^admin/', admin.site.urls),
url(r'^hello/$',hello),]

如下

首先,我们从模块 (在 Python 的 import 语法中, tests/views.py 转译为 tests.views ) 中引入了 hello视图。

接下来,我们为urlpatterns加上一行: (‘^hello/$’, hello), 这行被称作URLpattern,它是一个Python的元组。元组中第一个元素是模式匹配字符串(正则表达式);第二个元素是那个模式将使用的视图函数。

Django在检查URL模式前,移除每一个申请的URL开头的斜杠(/)。 这意味着我们为/hello/写URL模式不用包含斜杠(/)。模式包含了一个尖号(^)和一个美元符号($)。这些都是正则表达式符号,并且有特定的含义: 上箭头要求表达式对字符串的头部进行匹配,美元符号则要求表达式对字符串的尾部进行匹配。

最好还是用范例来说明一下这个概念。 如果我们用尾部不是$的模式’^hello/’,那么任何以/hello/开头的URL将会匹配,例如:/hello/foo 和/hello/bar,而不仅仅是/hello/。类似地,如果我们忽略了尖号(^),即’hello/$’,那么任何以hello/结尾的URL将会匹配,例如:/foo/bar/hello/。如果我们简单使用hello/,即没有^开头和$结尾,那么任何包含hello/的URL将会匹配,如:/foo/hello/bar。因此,我们使用这两个符号以确保只有/hello/匹配,不多也不少。

你大多数的URL模式会以^开始、以$结束,但是拥有复杂匹配的灵活性会更好。

你可能会问:如果有人申请访问/hello(尾部没有斜杠/)会怎样。 因为我们的URL模式要求尾部有一个斜杠(/),那个申请URL将不匹配。 然而,默认地,任何不匹配或尾部没有斜杠(/)的申请URL,将被重定向至尾部包含斜杠的相同字眼的URL。

3.运行试试

python manage.py runserver

运行后打开浏览器http://127.0.0.1:8000/

发现找不到页面,为什么呢?因为刚刚配置的url是 http://127.0.0.1:8000/hello/

成功了。。。

关于正则表达式:

正则表达式 (或 regexes ) 是通用的文本模式匹配的方法。 Django URLconfs 允许你 使用任意的正则表达式来做强有力的URL映射,不过通常你实际上可能只需要使用很少的一 部分功能。 这里是一些基本的语法。

符号 匹配
. (dot) 任意单一字符
\d 任意一位数字
[A-Z] A 到 Z中任意一个字符(大写)
[a-z] a 到 z中任意一个字符(小写)
[A-Za-z] a 到 z中任意一个字符(不区分大小写)
+ 匹配一个或更多 (例如, \d+ 匹配一个或 多个数字字符)
[^/]+ 一个或多个不为‘/’的字符
* 零个或一个之前的表达式(例如:\d? 匹配零个或一个数字)
* 匹配0个或更多 (例如, \d* 匹配0个 或更多数字字符)
{1,3} 介于一个和三个(包含)之前的表达式(例如,\d{1,3}匹配一个或两个或三个数字)

转载于:https://my.oschina.net/u/3264690/blog/839533

[Django学习]第三章 视图和url配置相关推荐

  1. Python爬虫学习第三章-4.3-使用xpath解析爬取全国城市名称

    Python爬虫学习第三章-4.3-使用xpath解析爬取全国城市名称   这一节主要是使用xpath解析爬取全国城市名称 这里使用的网址是:空气质量历史数据查询   这一个案例体现的点主要是xpat ...

  2. Java学习 第三章 数组(三)排序算法

    ** Java学习 第三章 数组(三)排序算法 ** 主要内容:排序算法.排序算法横向比较.Arrays工具类的使用.数组常见异常 1.数组中涉及到的常见算法:排序算法 1.1 排序算法分类:内部排序 ...

  3. Django学习日志三:模型层

    Django学习日志三:模型层1 日志一我们学习了Django的配置,详见: Django学习日志一Django的配置 日志二我们学习了创建第一个django项目,详见: Django学习日志二--创 ...

  4. 深度学习 第三章 tensorflow手写数字识别

    深度学习入门视频-唐宇迪 (笔记加自我整理) 深度学习 第三章 tensorflow手写数字识别 1.tensorflow常见操作 这里使用的是tensorflow1.x版本,tensorflow基本 ...

  5. 高级视图和URL配置

    第3章我们解释了Django视图方法和URL配置基础,本章将对这两部分进行详述 URL配置技巧 使方法import流化 看看下面的URL配置,基于第3章的例子: Java代码   from djang ...

  6. java pptx_java学习ppt-第一章-java环境及配置.pptx

    java学习ppt-第一章-java环境及配置.pptx 还剩 31页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,很抱歉,此页已超出免费预览范围啦! 如果喜欢就下载吧,价低环保! 内容要 ...

  7. Python基础之 Django视图和 URL 配置

    通过上节文章中命令创建项目,然后创建视图文件,配置url,然后启动项目. 1进入相应目录,创建项目命令如下: C:\Windows\system32>f: F:\>cd F:\python ...

  8. Django 学习笔记 1.3 视图和模板

    文章目录 前言 1 概况 2 编写更多视图 3 写一个真正有用的视图 3.1 示例:让视图从数据库里读取记录 3.2 示例存在的问题 3.3 创建模版 3.4 一个快捷函数: render() 4 视 ...

  9. [翻译] 神经网络与深度学习 第三章 提升神经网络学习的效果 - Chapter 3 Improving the way neural networks learn

    目录: 首页 译序 关于本书 关于习题和难题 第一章 利用神经网络识别手写数字 第二章 反向传播算法是如何工作的 > 第三章 提升神经网络学习的效果 第四章 可视化地证明神经网络可以计算任何函数 ...

最新文章

  1. java-线程池序号一直增长
  2. AMD/NV大跌2周后仅两天收复失地 挖矿成背后推手
  3. java 年计算_用Java计算leap年
  4. java程序死了telnet还有用吗_java实现telnet连接操作 改进
  5. Java 8 CompletableFuture 浅入
  6. java 中random类使用_Java中的天使和魔鬼:Unsafe类
  7. php mysql 取最小值_php – 根据另一个值更新最小值 – MySql
  8. 关于jquery中html()、text()、val()的区别
  9. 【matplotlib】对x轴标签进行旋转的方法小结
  10. (转)币圈人物志 BM(EOS,BTS,Steem缔造者)
  11. Raki的读paper小记:PURE:A Frustratingly Easy Approach for Entity and Relation Extraction
  12. Java基础学习教程,eclipse简单使用教程(Java集成开发工具)
  13. rm mysql 数据日志文件恢复
  14. android : 小米手机 打开开发者 选项 PC 端 安装 apk
  15. pgsql 使用技巧
  16. 数字档案管理系统解决方案 - 数字化档案建设方案
  17. 5、用Python编程,假设一年期定期利率为3.25%,计算一下需要过多少年,一万元的一年定期存款连本带息能翻番?
  18. [4G5G专题-54]:L2 MAC层-架构概述
  19. [资源分享]一个类似LOL的UNITY分享
  20. 校招----中信银行一面面经

热门文章

  1. 表表达式,Substring, CharIndex, 多行数据变同一行的用法
  2. 列表渲染 wx:key 的作用、条件渲染 wx:if 与 hidden 的区别
  3. 1.spring boot要求最低jdk1.8,平安默认1.6问题,-》安装JDK1.8 2.maven 3.3.3要求最低jdk1.7-安装jdk 1.8...
  4. C语言--第0次作业
  5. Visual C++ 时尚编程百例019(串行化)
  6. 【转发】centos7支持ntfs
  7. Spotify如何对Apache Storm进行规模扩展
  8. c++ primer,友元函数上的一个例子(By Sybase)
  9. 2012体感发展加速,微软再添新对手
  10. Devexpress 10.2.3 Demo 批量生成脚本