pycharm+django之小试牛刀
准备好好学习一下python,就从django开始吧,顺带了解一下网站的开发。今天在windows上安装了python,django,以及酷炫吊的IDE——pycharm,学习资料主要是《the Django Book 2》,hello world的程序就不要详细叙述了,比较简单而且网上有很多例程,主要通过动态内容的实验对django开发具有一个大致的认识。
一、新建工程
第一个目标是创建一个显示当前日期和时间的网页。打开pycham,新建一个django的工程,避免了命令行下的繁琐命令,命名为time_test,application name命名为show_time。可以看到工程目录如下图所示:
二、视图函数
- # coding=utf-8
- from django.http import HttpResponse
- import datetime
- def current_datetime(request):
- # 计算当前日期和时间,并以 datetime.datetime 对象的形式保存为局部变量 now
- now = datetime.datetime.now()
- #构建Html响应,使用now替换占位符%s
- html = "<html><body>It is now %s.</body></html>" % now
- #返回一个包含所生成响应的HttpResponse对象
- return HttpResponse(html)
每个视图函数都以一个 HttpRequest 对象为第一个参数,该参数通常命名为 request 。
三、URL映射
Resource Locator,缩写为URL)是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。该视图函数返回了包含当前日期和时间的一段 HTML 页面。但是如何告诉 Django 使用这段代码呢?这就是 URLconfs 粉墨登场的地方了。URLconf 就像是 Django 所支撑网站的目录。它的本质是 URL 模式以及要为该 URL 模式调用的视图函数之间的映射表。你就是以这种方式告诉
Django,对于这个 URL 调用这段代码,对于那个 URL 调用那段代码。
- from django.conf.urls import patterns, include, url
- from show_time.views import current_datetime
- urlpatterns = patterns('',
- # Examples:
- # url(r'^$', 'time_test.views.home', name='home'),
- # url(r'^blog/', include('blog.urls')),
- (r'^time/$', current_datetime),
- #url(r'^admin/', include(admin.site.urls)),
- )
首先,我们从模块中引入了 current_datetime 视图。接着,我们加入了 (r'^time/$', current_datetime), 这一行。该行就是所谓的 URLpattern ,它是一个 Python 元组,其第一个元素是简单的正则表达式,第二个元素是为该模式应用的视图函数。简单来说,我们只是告诉 Django,所有指向 URL /time/ 的请求都应由 current_datetime 这个视图函数来处理。
四、运行网页
五、松耦合原则
耦合的,换句话说,决定URL返回哪个视图函数和实现这个视图函数是在两个不同的地方。这使得 开发人员可以修改一块而不会影响另一块。
到对应的URL。此外,如果我们想要输出这个函数到 一些 URL, 我们只需要修改URL配置而不用 去改动视图的代码。
六、动态URL
/time/plus/2/ 显示当前时间+2个小时的页面 /time/plus/3/ 显示当前时间+3个小时的页面,以此类推。
- from django.conf.urls import patterns, include, url
- from show_time.views import current_datetime, hours_ahead
- urlpatterns = patterns('',
- # Examples:
- # url(r'^$', 'time_test.views.home', name='home'),
- # url(r'^blog/', include('blog.urls')),
- (r'^time/$', current_datetime),
- (r'^time/plus/(\d{1,2})/$', hours_ahead),
- #url(r'^admin/', include(admin.site.urls)),
- )
我们把它限制在最大允许99个小时, 这样我们就只允许一个或两个数字,正则表达式的语法就是 \d{1,2} 。现在我们已经设计了一个带通配符的URL,我们需要一个方法把它传递到视图函数里去,这样 我们只用一个视图函数就可以处理所有的时间段了。我们使用圆括号把参数在URL模式里标识 出来。在这个例子中,我们想要把这些数字作为参数,用圆括号把 \d{1,2} 包围起来。
- # coding=utf-8
- from django.http import HttpResponse
- import datetime
- def current_datetime(request):
- # 计算当前日期和时间,并以 datetime.datetime 对象的形式保存为局部变量 now
- now = datetime.datetime.now()
- #构建Html响应,使用now替换占位符%s
- html = "<html><body>It is now %s.</body></html>" % now
- #返回一个包含所生成响应的HttpResponse对象
- return HttpResponse(html)
- def hours_ahead(request, offset):
- offset = int(offset)
- dt = datetime.datetime.now() + datetime.timedelta(hours=offset)
- html = "<html><body>In %s hour(s), it will be %s.</body></html>" % (offset, dt)
- return HttpResponse(html)
重新运行,在浏览器中输入http://127.0.0.1:8000/time/plus/3/:
----------------------------------------------------------------
欢迎大家转载我的文章。
转载请注明:转自古-月
欢迎继续关注我的博客
pycharm+django之小试牛刀的更多相关文章
- Python之Django环境搭建(MAC+pycharm+Django++postgreSQL)
Python之Django环境搭建(MAC+pycharm+Django++postgreSQL) 转载请注明地址:http://www.cnblogs.com/funnyzpc/p/7828614. ...
- PyCharm Django项目开发的调试方法
下面介绍两种PyCharm Django项目开发的调试方法: 方法一: 1. 使用PyCharm 自带的django项目Debug工具, 当然前提条件是django项目环境已经搭建好了. 2. 在代码 ...
- 用pycharm+django开发web项目
pycharm是python的一个商业的集成开发工具,本人感觉做python开发还是很好用的,django是一个很流行的python web开源框架,本文就是使用pycharm+django来开发py ...
- python+pycharm+django admin css样式出问题
最近打算学习一下Python,基础知识有了大概的了解,想上手搞搞东西. 我用的python 3.5+pycharm+django 1.11.2 在使用Django,打开127.0.0.1:8000/a ...
- PyCharm Django Python 开发环境配置 详细教程
PyCharm Django Python 开发环境配置 详细教程 1. Python 下载及安装 (1)根据需要的版本去 Python 官网(https://www.python.org/downl ...
- python:mysql+pycharm+Django环境搭建
1.安装mysql-python 环境:OS X Yosemite10.10.2 + Python2.7 首先网上搜了下mysql-python,说要先安装mysql客户端,然后改配置文件,可是各种改 ...
- Pycharm+django新建Python Web项目
这两天初学Python,首先是学习Python语法有PyCharm就可以运行Console程序了,因为是初学所以,尽量写的比较详细,包括参考的资料地址... 1.下载Python,并安装[本文版本 ...
- window安装pycharm Django
pycharm 安装Pycharm 直接在官网下载就可以,这里说一下如何破解注册码的问题: 修改电脑中hosts文件(地址: C:\Windows\System32\drivers\etc ),改变 ...
- Python3+PyCharm+Django+Django REST framework开发教程
一.说明 自己一是想跟上潮流二是习惯于直接干三是没有人可以请教,由于这三点经常搞得要死要活.之前只简单看过没写过Diango,没看过Django REST framework,今天一步到位直接上又撞上 ...
随机推荐
- C程序练习
1.编程从键盘任意输入两个时间(例如4时55分和1时25分),计算并输出这两个时间之间的间隔.要求不输出时间差的负号. #include<stdio.h> int main() { int ...
- JS中数组和字符串的方法大全
数组的方法很多,ECMScript5又提供了好几种方法.有空把之前的云上的笔记整理了一下,方便自己以后查找使用. 一.ECMScript 3的Array.prototype中定义的方法 1.join( ...
- C# 异步转同步
当我们的程序运行时,调用了一段异步的逻辑A,这段异步的逻辑无法转化为同步(如动画.下载进度等) 而,我们又需要等待异步逻辑A处理完成,然后再执行其它逻辑B. 那就迫切需要将异步转同步了! //参数bo ...
- HTML入门知识
B/S:浏览器-服务器 C/S:客户端-服务器 更新麻烦 管理麻烦 PHP:基于BS结构进行项目开发的语言 ====================HTML:超文本标记语言 -- 控制网面内容CSS: ...
- C++笔记001:Microsoft Visual Studio 2010软件的安装与建立第一个cpp文件
原创笔记,转载请注明出处! 点击[关注],关注也是一种美德~ 我学习C++使用软件为Microsoft Visual Studio 2010. 首先,软件的安装包 链接:https://pan.bai ...
- ACM Self Number
In 1949 the Indian mathematician D.R. Kaprekar discovered a class of numbers called self-numbers. Fo ...
- Swift基础之实现选择图片时,出现类似于ActionSheet的样式
之前看到过有APP在选择图片时,调用手机相册时,将手机相册做成了左右滑动选择的效果,这次展示的就是这种样式,用OC语言已经有人实现过类似的代码,在这里写的仅仅是效果展示的代码调用,具体代码,可以自己研 ...
- TCP发送源码学习(2)--tcp_write_xmit
一.tcp_write_xmit()将发送队列上的SBK发送出去,返回值为0表示发送成功.函数执行过程如下:1.检测拥塞窗口的大小.2.检测当前报文是否完全处在发送窗口内.3.检测报文是否使用nagl ...
- 大话XML解析
之前我写过一篇关于xml解析的文章:http://blog.csdn.net/sdksdk0/article/details/50749326.今天这篇文章主要是进一步加深对xml基础的理解了使用,毕 ...
- Android基础知识点-Manifest清单文件
每个应用的根目录中都必须包含一个 AndroidManifest.xml 文件(且文件名精确无误). 清单文件向 Android 系统提供应用的必要信息,系统必须具有这些信息方可运行应用的任何代码. ...