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 ...
随机推荐
- DbCommandInterceptor抓取EF执行时的SQL语句
EF6.1也出来不少日子了,6.1相比6.0有个很大的特点就是新增了System.Data.Entity.Infrastructure.Interception 命名空间,此命名空间下的对象可以允许我 ...
- python单例模式的实现
1 线程不安全的单例模式 # -*- coding:utf-8 -*- from __future__ import unicode_literals import functools def sin ...
- 040 关于hive元数据的解析
一:原理 1.整体原理 找到数据库 找到表 先找分区表,然后不找SDS表了,先去找PARTITIONS表,根据这张表的SD_ID找对应的HDFS路劲 再普通表,直接根据SDS表的中SD_ID找到对应的 ...
- 基于python的机器学习开发环境安装(最简单的初步开发环境)
一.安装Python 1.下载安装python3.6 https://www.python.org/getit/ 2.配置环境变量(2个) 略...... 二.安装Python算法库 安装顺序:Num ...
- 缓存击穿、缓存失效及热点key的解决方案
分布式缓存是网站服务端经常用到的一种技术,在读多写少的业务场景中,通过使用缓存可以有效地支撑高并发的访问量,对后端的数据库等数据源做到很好地保护.现在市面上有很多分布式缓存,比如Redis.Memca ...
- KMS命令激活VOL版本Office2016
1.命令行下进入Office2016的安装目录 2.设置KMS服务器:cscript ospp.vbs /sethst:kms.landiannews.com kms.landiannews.com是 ...
- 在Ubuntu中成功搭建KMS服务器
介绍 基于vlmcsd搭建的KMS服务器. 根据github上的说明,这个工具是用C写的,没有任何依赖,可以直接运行.而且它横跨几乎现在所有的系统平台,如Android, FreeBSD, Solar ...
- spring的i o c简单回顾
1.springIOC是一个创建对象的容器,他负责将我们需要的对象帮我们创建出来,创建时间是:当我们从上下文环境中读取此对象时就会帮我们创建,严格意义上来讲它是一种编程思想不是一种技术. 2.依赖注入 ...
- openstack IPV6
openstack queens 配置有状态DHCPv6 概念: DHCPv6是一个用来配置工作在IPv6网络上的IPv6主机所需的IP地址.IP前缀和/或其他配置的网络协议. IPv6主机可以使用 ...
- BZOJ.2724.[Violet 6]蒲公英(静态分块)
题目链接 区间众数 强制在线 考虑什么样的数会成为众数 如果一个区间S1的众数为x,那么S1与新区间S2的并的众数只会是x或S2中的数 所以我们可以分块先预处理f[i][j]表示第i到第j块的众数 对 ...