Django Web开发学习笔记(3)
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是一个元组类型的数据,因此我们在末尾最好添加一个逗号,刷新一下服务器,重新登录一下
于是我们在我们的页面中看到了输出了
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)的更多相关文章
- Django Web开发学习笔记(1)
一.Python的标准类型 (1)bool型 >>> bool("") False >>> bool(None) False >>& ...
- Django Web开发学习笔记(5)
第五部分 Model 层 创建一个app工程.app和project的区别引用DjangoBook的说法是: 一个project包含很多个Django app以及对它们的配置. 技术上,project ...
- Django Web开发学习笔记(4)
第四章 模板篇 上一章的内容,我们将HTML的代码和Python代码都混合在了在view.py的文件下.但是这样做的坏处无疑是明显的,引用DjangoBook的说法: 对页面设计进行的任何改变都必须对 ...
- python的内存管理机制 图解+Django Web开发学习笔记
http://www.cnblogs.com/CBDoctor/p/3781078.html http://www.cnblogs.com/vamei/p/3232088.html http://bl ...
- 【前端】移动端Web开发学习笔记【2】 & flex布局
上一篇:移动端Web开发学习笔记[1] meta标签 width设置的是layout viewport 的宽度 initial-scale=1.0 自带 width=device-width 最佳实践 ...
- 【前端】移动端Web开发学习笔记【1】
下一篇:移动端Web开发学习笔记[2] Part 1: 两篇重要的博客 有两篇翻译过来的博客值得一看: 两个viewport的故事(第一部分) 两个viewport的故事(第二部分) 这两篇博客探讨了 ...
- ASP.NET Core Web开发学习笔记-1介绍篇
ASP.NET Core Web开发学习笔记-1介绍篇 给大家说声报歉,从2012年个人情感破裂的那一天,本人的51CTO,CnBlogs,Csdn,QQ,Weboo就再也没有更新过.踏实的生活(曾辞 ...
- Django Web开发指南笔记
Django Web开发指南笔记 语句VS表达式 python代码由表达式和语句组成,由解释器负责执行. 主要区别:表达式是一个值,它的结果一定是一个python对象:如:12,1+2,int('12 ...
- PHP和MySQL Web开发学习笔记介绍
前言 从2016年2月1日开始,之后的几个月左右的时间里,我会写一个系列的PHP和MySQL Web开发的学习笔记.我之前一直从事Java语言的开发工作,最近这段时间非常想学习一门语言,就选择了PHP ...
随机推荐
- [转] Java基础知识——Java语言基础
http://blog.csdn.net/loneswordman/article/details/9905931 http://blog.csdn.net/wanghuan203/article/d ...
- optional
public class Test { public static void main(String[] args) { People people = new People(); Optional& ...
- BZOJ1821 [JSOI2010]Group 部落划分 Group Kruskal
欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ1821 题意概括 平面上有n个点,现在把他们划分成k个部分,求不同部分之间最近距离的最大值. 两个部 ...
- Java Web报错: GET http://localhost:8080/ 404 (Not Found)
eclipse正常启动tomcat,但是 访问http://localhost:8080 报404错误 搞笑的是我访问服务器中的其他网页也可以打开 报错如下: 解决: 如果这3项都已经变灰色,删除配置 ...
- AngularJS表格神器“ui-grid”的应用
HTML: (代码仅用于解释得更清楚,并未完全展示) <!doctype html> <html ng-app="app"> <head> & ...
- 李宏毅机器学习笔记1:Regression、Error
李宏毅老师的机器学习课程和吴恩达老师的机器学习课程都是都是ML和DL非常好的入门资料,在YouTube.网易云课堂.B站都能观看到相应的课程视频,接下来这一系列的博客我都将记录老师上课的笔记以及自己对 ...
- IdentityServer4-EF动态配置Client和对Claims授权(二)
本节介绍Client的ClientCredentials客户端模式,先看下画的草图: 一.在Server上添加动态新增Client的API 接口. 为了方便测试,在Server服务端中先添加swagg ...
- python魔法方法-自定义序列
自定义序列的相关魔法方法允许我们自己创建的类拥有序列的特性,让其使用起来就像 python 的内置序列(dict,tuple,list,string等). 如果要实现这个功能,就要遵循 python ...
- [NOIp2010提高组]关押罪犯
OJ题号:洛谷1525 思路:贪心. 先将所有的人按怨气值从大到小排一下,然后依次尝试将双方分入两个不同的监狱,如果失败(即已分入相同的监狱),则输出这个怨气值. #include<cstdio ...
- unity3d脚本语言中的引用类型
在之前的文文里有说到,值类型和引用类型,那么这会就单独说下引用类型: Unity3D中的C#语言提供了专门的类型来为开发者提供使用C#开发游戏的便利条件: 在该引擎中,使用UnityEngine命名空 ...