1、创建一个简单视图

这章是按照DgangoBook的说明。在我们创建的工程目录下面DjangoE_1(这是我为自己的工程命名的名字)新建一个view.py的文件,并在该文件下添加如下代码

from django.http import HttpResponse

def hello(request):
return HttpResponse("hello world")

熟悉HTTP的话知道HttpResponse是服务器到返回到客户端的应答,而request是客户端到服务器的请求。

我们添加了视图的显示信息,可是Django怎样映射到我们的视图上?我们在生成的工程目录下面发现了那个叫urls.py的文件。这就是视图和控制的映射文件。打开后我们看到默认生成的代码:

from django.conf.urls import patterns, include, url

from django.contrib import admin
admin.autodiscover() urlpatterns = patterns('',
# Examples:
# url(r'^$', 'DjangoE_1.views.home', name='home'),
# url(r'^blog/', include('blog.urls')), url(r'^admin/', include(admin.site.urls)),
)

默认的代码是添加管理员权限的东西,我们暂且先不管这些东西,你也可以先注释掉这些内容。我们在其中添加这样两句代码:

from DjangoE_1.view import hello

(r'^hello/$',hello),

于是我们的代码变成了这个样子

from django.conf.urls import patterns, include, url
from django.contrib import admin
admin.autodiscover() from DjangoE_1.view import hello urlpatterns = patterns('',
# Examples:
# url(r'^$', 'DjangoE_1.views.home', name='home'),
# url(r'^blog/', include('blog.urls')), url(r'^admin/', include(admin.site.urls)),
(r'^hello/$',hello),
)

需要注意的是erlpatterns是一个元组类型的数据,因此我们在末尾最好添加一个逗号,刷新一下服务器,重新登录一下

http://localhost:8000/hello/

于是我们在我们的页面中看到了输出了

Hello world

熟悉Web的应该已经明白基本上的操作流程了,下面是一个稍微复杂一点的操作!

假如我们希望显示一个动态的内容,那我们该怎么办呢?也就是我们怎样想view.py的视图文件中传入参数?

#view.py
def hello(request):
return HttpResponse("hello"); def showTime(request):
now = datetime.datetime.now()
html = """<html><body>It is now %s.
<div id='mybtn'><input type='button' value='click me'></div></body></html>""" % now
return HttpResponse(html) def showCurrentTime(request):
now = datetime.datetime.now();
html="""<html><body><div id="timeArea"></div></body><script>function
getTime(){document.getElementById('timeArea').innerText='%s';}setInterval("getTime()",1000);</script></html>""" %now;
return HttpResponse(html)
#urls.py
from django.conf.urls import patterns, include, url
from django.contrib import admin
admin.autodiscover()
import DjangoE_1.view urlpatterns = patterns('',
# Examples:
# url(r'^$', 'DjangoE_1.views.home', name='home'),
# url(r'^blog/', include('blog.urls')), url(r'^admin/', include(admin.site.urls)), (r'^hello/$',DjangoE_1.view.hello),
(r'^show/$', DjangoE_1.view.showTime),
(r'^getnow/$', DjangoE_1.view.showCurrentTime),
)

  可以发现,我们完全可以以字符串的形式传递数据。但是要求有严格的数据格式,因为在Python里面如果空格没有的话有时候都会报错。这里只是练习,实际开发中是不会有这样的代码的。另外,注意getnow是不会动态显示时间的,因为我们的now只是在连接的时候获取一次,因此它的值实际是不会变化的。下一节我们将应用模板来进行代码分离,目的是将Python和HTML的代码能区别开来。

Django Web开发学习笔记(3)的更多相关文章

  1. Django Web开发学习笔记(1)

    一.Python的标准类型 (1)bool型 >>> bool("") False >>> bool(None) False >>& ...

  2. Django Web开发学习笔记(5)

    第五部分 Model 层 创建一个app工程.app和project的区别引用DjangoBook的说法是: 一个project包含很多个Django app以及对它们的配置. 技术上,project ...

  3. Django Web开发学习笔记(4)

    第四章 模板篇 上一章的内容,我们将HTML的代码和Python代码都混合在了在view.py的文件下.但是这样做的坏处无疑是明显的,引用DjangoBook的说法: 对页面设计进行的任何改变都必须对 ...

  4. python的内存管理机制 图解+Django Web开发学习笔记

    http://www.cnblogs.com/CBDoctor/p/3781078.html http://www.cnblogs.com/vamei/p/3232088.html http://bl ...

  5. 【前端】移动端Web开发学习笔记【2】 & flex布局

    上一篇:移动端Web开发学习笔记[1] meta标签 width设置的是layout viewport 的宽度 initial-scale=1.0 自带 width=device-width 最佳实践 ...

  6. 【前端】移动端Web开发学习笔记【1】

    下一篇:移动端Web开发学习笔记[2] Part 1: 两篇重要的博客 有两篇翻译过来的博客值得一看: 两个viewport的故事(第一部分) 两个viewport的故事(第二部分) 这两篇博客探讨了 ...

  7. ASP.NET Core Web开发学习笔记-1介绍篇

    ASP.NET Core Web开发学习笔记-1介绍篇 给大家说声报歉,从2012年个人情感破裂的那一天,本人的51CTO,CnBlogs,Csdn,QQ,Weboo就再也没有更新过.踏实的生活(曾辞 ...

  8. Django Web开发指南笔记

    Django Web开发指南笔记 语句VS表达式 python代码由表达式和语句组成,由解释器负责执行. 主要区别:表达式是一个值,它的结果一定是一个python对象:如:12,1+2,int('12 ...

  9. PHP和MySQL Web开发学习笔记介绍

    前言 从2016年2月1日开始,之后的几个月左右的时间里,我会写一个系列的PHP和MySQL Web开发的学习笔记.我之前一直从事Java语言的开发工作,最近这段时间非常想学习一门语言,就选择了PHP ...

随机推荐

  1. ZOJ - 3471

    壮压水一水,刚开始脑残了非要开两维dp... #include<cstdio> #include<cstring> #include<algorithm> #def ...

  2. 6-5 巡逻机器人 uva1600

    一开始按照标准bfs来写  标记为二维数组 后来按照三维数组写过了    ps大部分bfs都不会是二维数组搞定!!! 其中有一个bug弄了半个小时... 一开始我是先判断!vis[x][y][v.c] ...

  3. 【Java】 剑指offer(58-1) 翻转单词顺序

      本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集   题目 输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变 ...

  4. DP-hdu1260

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1260 题目描述: 题目大意:每一个人去电影票买票,有两种买票方法:1.自己单人买:2.与前面的人一起买 ...

  5. Windows环境下 PHP调用R脚本

    写在前面的: 由于是windows平台实现的,只要保证脚本命令能在cmd控制台运行,则可以在php中利用system()实现. 注意事项: (1).保证system的路径中无汉字和空格 !!  (亲身 ...

  6. Android Firebase Android google-cloud-tools

    Firebase 让不懂服务端的开发者也可以快速写出实时性的Web端和移动端应用. firebase的功能包括推送通知,云存储,活动监视,远程部署 针对国内三方推送,只能在国内使用,到了国外就不支持了 ...

  7. [POI2011]Inspekcja

    [POI2011]Inspekcja 题目大意: 给你一棵\(n(n\le10^6)\)个点的树,\(s\)为起点.每次选择一个点作为目标点\(t_i\),沿最短路走到\(t_i\)再走回\(s\)( ...

  8. [TC14126]BagAndCards

    [TC14126]BagAndCards 题目大意: 有\(n(n\le500)\)个袋子,第\(i\)个袋子里有\(count[i][j]\)张值为\(j(j\le m\le500)\)的牌.给一个 ...

  9. crm的知识点整理

    ''' # 1. 通过ChangeList封装好多数据 # 2. 销售中公共资源:Q查询,3天 15天 from django.db.models import F,Q F 使用查询条件的值,专门取对 ...

  10. BZOJ2509 : 送分题

    求出每个点向上下左右能延伸的最大长度$left$.$right$.$up$.$down$. 枚举每一条对角线,如果$j$可以作为左上角,$i$可以作为右下角,那么有: $j+\min(down[j], ...