1 编写第一个静态页面——Hello world页面
在上一篇博客《[Python] 利用Django进行Web开发系列(一)》中,我们创建了自己的目录mysite。
Step1:创建视图文件
在编写第一个页面之前,我们首先要在mysite目录下创建一个名称为views.py的文件。当然,命名是没有要求的,你也可以命名为a.py,b.py... ... 根据自己的喜好命名就行。在已创建好的views.py中写入如下代码,并保存:
from django.http import HttpResponse def hello(request):
return HttpResponse("Hello world! This is my first trial. [Poll的笔记]")
我们逐行分析一下这段代码:
首先,我们从django.http模块导入HttpResponse类。
接下来,我们定义一个叫做hello的视图函数。每个视图函数至少要有一个参数,通常被叫作request。这是一个触发这个视图、包含当前Web请求信息的对象,是类django.http.HttpResponse的一个实例。在这个示例中,我们虽然不用request做任何事情,然而它仍必须是这个视图的第一个参数。注意视图函数的名称并不重要;并不一定非得以某种特定的方式命名才能让Django识别它。 在这里我们把它命名为:hello,是因为这个名称清晰的显示了视图的用意。同样地,你可以用诸如:hello_wonderful_beautiful_world,这样难看的短句来给它命名。
这个函数只有简单的一行代码: 它仅仅返回一个HttpResponse对象,这个对象包含了文本“Hello world”。
在这里要记住的是:一个视图就是Python的一个函数。这个函数第一个参数的类型是HttpRequest;它返回一个HttpResponse实例。为了使一个Python的函数成为一个Django可识别的视图,它必须满足这两个条件。
Step2:进行URL配置
现在,如果你再运行:python manage.py runserver,你还将看到Django的欢迎页面,而看不到我们刚才写的Hello world显示页面。 那是因为我们的mysite项目还对hello视图一无所知。我们需要通过一个详细描述的URL来显式的告诉它并且激活这个视图。为了绑定视图函数和URL,我们使用URLconf。
URLconf 就像是 Django 所支撑网站的目录。 它的本质是 URL 模式以及要为该 URL 模式调用的视图函数之间的映射表。 你就是以这种方式告诉 Django,对于这个 URL 调用这段代码,对于那个 URL 调用那段代码。 例如,当用户访问/foo/时,调用视图函数foo_view(),这个视图函数存在于Python模块文件view.py中。上一篇博文中执行django-admin.py startproject时,该脚本会自动为你建了一份URLconf,即urls.py文件。
如果想在URLconf中加入URL和view,只需增加映射URL模式和view功能的Python tuple即可. 这里演示如何添加view中hello功能。
from django.conf.urls import *
from mysite.views import hello urlpatterns = patterns('',
('^hello/$', hello),
)
我们逐行分析一下这段代码:
首先,我们从模块中引入了hello视图。
总结一下:
进来的请求转入/hello/。
Django通过在ROOT_URLCONF配置来决定根URLconf。
Django在URLconf中的所有URL模式中,查找第一个匹配/hello/的条目。
如果找到匹配,将调用相应的视图函数。
视图函数返回一个HttpResponse。
Django转换HttpResponse为一个适合的HTTP response,以Web page显示出来。
其实做一个Django-powered页面了,只需要写视图函数并用 URLconfs把它们和URLs对应起来就ok了。
2 编写第一个动态页面——current time页面
我们的Hello world视图是用来演示基本的Django是如何工作的,但是它不是一个动态网页的例子,因为网页的内容一直是一样的. 每次去查看/hello/,你将会看到相同的内容,它类似一个静态HTML文件。在第二个例子里,博主通过一个显示当前时间的页面来简单示范一下动态页面。动态页面和静态页面的编写是一样的,两部分:创建视图和配置URL。
视图文件views.py代码如下:
from django.http import HttpResponse
import time def current_time(request):
return HttpResponse("Current time is: "+time.strftime('%Y-%m-%d %H:%M:%S'))
URLconf文件urls.py代码如下:
from django.conf.urls import *
from mysite.views import current_time urlpatterns = patterns('',
('^current_time/$', current_time),
)
然后我们通过网址http://127.0.0.1:8000/current_time/就可以看到编写的第一个动态页面了,它显示的内容是你访问该页面时的当前时间,如下图所示:
看到这里,大家是不是感觉利用python Django进行Web开发真的很简单。当然,我们页面实在是太单薄了,不光没有啥模板科研,就连一些颜色都没有,哈哈,不过后边楼主会慢慢学习,并和大家分享经验。相信经过这系列的努力,最后一定可以随心所欲地设计出一个属于自己的完美的页面。
3 参考内容
[1] Django book 第三章:视图和URL配置
[Python] 利用Django进行Web开发系列(二)的更多相关文章
-
[Python] 利用Django进行Web开发系列(一)
1 写在前面 在没有接触互联网这个行业的时候,我就一直很好奇网站是怎么构建的.现在虽然从事互联网相关的工作,但是也一直没有接触过Web开发之类的东西,但是兴趣终归还是要有的,而且是需要自己动手去实践的 ...
-
Nginx+Python+uwsgi+Django的web开发环境安装及配置
Nginx+Python+uwsgi+Django的web开发环境安装及配置 nginx安装 nginx的安装这里就略过了... python安装 通常系统已经自带了,这里也略过 uwsgi安装 官网 ...
-
利用Django进行Web开发
Web就是用来表示Internet主机上供外界访问的资源的.网页也统称为web资源.Internet上供外界访问的Web资源主要分为如下两类: 静态web资源:指web页面*人们浏览的数据始终是不变 ...
-
Python &; PyCharm &; Django 搭建web开发环境
一.安装软件 1.安装 Python 2.7.PyCharm.pip(Python包管理工具).Django ( pip install Django) 二.部署 1.PyCharm 新建Django ...
-
Python &; PyCharm &; Django 搭建web开发环境(续)
由于Django自带轻量级的server,因此在前篇博文中,默认使用该server,但实际生产中是不允许这么干的,生产环境中通常使用Apache Httpd Server结合mod_wsgi.so来做 ...
-
Python使用django搭建web开发环境
安装 Python 去 Python 官方网站找到 Python 3 的下载地址,根据你的系统选择 32 位或者 64 位的安装包,下载好后双击安装即可. 检测是否安装完成 C:\WINDOWS\sy ...
-
全面解读Python Web开发框架Django,利用Django构建web应用及其部署
全面解读Python Web开发框架Django Django是一个开源的Web应用框架,由Python写成.采用MVC的软件设计模式,主要目标是使得开发复杂的.数据库驱动的网站变得简单.Django ...
-
pycharm+python+Django之web开发环境的搭建(windows)
转载:https://blog.csdn.net/yjx2323999451/article/details/53200243/ pycharm+python+Django之web开发环境的搭建(wi ...
-
使用eclipse搭建第一个python+Django的web开发实例
python+Django的web开发实例 一.创建一个项目如果这是你第一次使用Django,那么你必须进行一些初始设置.也就是通过自动生成代码来建立一个Django项目--一个Django项目的 ...
随机推荐
-
初学DirectX11, 留个纪恋。
以前学的是openGL, 最近才开始学DirectX11,写了个很垃圾的代码,怀念以前的glPushMatrix(), glPopMatrix(), glBegin(), glEnd(), 多简单啊, ...
-
Spring3.2.4集成quartz2.2.1定时任务(demo).
在JavaEE系统中,我们会经常用到定时任务,下面是我自己写的一个demo. 前面几篇quartz博客感觉看的还是难懂 于是重新整理下 源码地址:http://pan.baidu.com/s/1BXH ...
-
Ubuntu基础命令
显示历史命令的时间戳 echo 'HISTTIMEFORMAT="%F %T "' >> ~/.bashrc 解压文件/打包文件夹 tar -zxvf folder ...
-
Linux 命令 - top: 动态显示进程信息
命令格式 top -hv | -abcHimMsS -d delay -n iterations -p pid [, pid ...] 命令参数 -a 根据内存的使用排序. -b 以批处理模式操作. ...
-
iOS tableview 静态表布局纪录
今天使用了tableview静态表布局,纪录如下 1:使用tableview 静态表,必须是UITableViewController 2:Content 中选择 Static Cells 如下图 3 ...
-
如何为mysql添加、启动服务
1.点击"开始",输入cmd,以管理员身份运行: 2.进入mysql的bin目录,执行 mysqld --install,然后执行 net start mysql :
-
Java随机数的使用
在java中实现随机数的类有两种,分别是和java.util.Math 和 java.util.Random 第一种:java.lang.Math.random() Math.random()方法创建 ...
-
快速上手使用Maven
maven的相关命令 mvn archetype:create :创建 Maven 项目 mvn compile :编译源代码(编译到target文件夹中) mvn test-compile :编译测 ...
-
详解MariaDB数据库的外键约束
1.什么是外键约束 外键约束(foreign key)就是表与表之间的某种约定的关系,由于这种关系的存在,我们能够让表与表之间的数据,更加的完整,关连性更强. 关于数据表的完整性和关连性,可以举个例子 ...
-
Java提高篇(二):IO字节流、字符流和处理流
在我们的Java语言当中,通常会有对文件进行读写,因此我们引入java的IO类来进行文件的读写. 一.字节流 下面是一个字节流的实例: import java.io.*; public class I ...