python应用松耦合
比方说,考虑有一个以前写的视图函数,这个函数显示当前日期和时间。
如果我们想把它的URL 从原来的 /time/ 改变到/currenttime/ ,
我们只需要快速的修改一下URL配置即可,
不用担心这个函数的内部实现。同样的,如果我们想要修改这个函数的内部实现
也不用担心会影响 到对应的URL。此外,如果我们想要输出这个函数到 一些 URL,
我们只需要修改URL配置而不用 去改动视图的代码。

示例一个django目录文件夹:

mysite/

       __init__.py :让 Python 把该目录当成一个开发包 (即一组模块)所需的文件。

        settings.py:该 Django 项目的设置或配置。

        urls.py :该 Django 项目的 URL 声明,即 Django 所支撑站点的内容列表

   manage.py:一种命令行工具,可让你以多种方式与该 Django 项目进行交互。

新建一个views.py文件:

from django.http import HttpResponse
import datetime

def current_datetime(request):
    now = datetime.datetime.now()
    html = "<html><body>It is now %s.</body></html>" % now
    return HttpResponse(html)

修改urls.py文件:

from django.conf.urls import url
from django.contrib import admin
# 引入python模块
from mysite.views import current_datetime

urlpatterns = [
    url(r'^time/$', current_datetime),
    url(r'^admin/', admin.site.urls),
]

运行:
python manage.py runserver

打开 http://127.0.0.1:8000/time/ 访问当前时间

项目地址:mysite_time
https://github.com/liuqiuchen/django

实例2:

url中传递数字,页面显示现在的时间加上数字

url的格式:http://127.0.0.1/time/plus/23

主要代码:

urls.py

from django.conf.urls import url
from django.contrib import admin
# 引入python模块
from mysite.views import current_datetime, hours_ahead

urlpatterns = [
    url(r'^time/$', current_datetime),
    url(r'^time/plus/(\d{1,2})/$', hours_ahead),
    url(r'^admin/', admin.site.urls),
]

views.py

from django.http import HttpResponse
import datetime

def current_datetime(request):
    now = datetime.datetime.now()
    html = "<html><head><meta charset='utf-8'></head><body>现在的时间是%s<body/>" % now
    return HttpResponse(html)

# offset是从匹配的URL里提取出来的,提取的字符总是字符串
# 因为urls.py中正则表达式 (\d{1,2}) 只提取数字字符。 这也是URL配置的另一个好处:提供了清晰的输入数据有效性确认。
def hours_ahead(request, offset):
    offset = int(offset) # 将字符串转换为整数
    dt = datetime.datetime.now() + datetime.timedelta(hours=offset)
    html = "<html><head><meta charset='utf-8'></head><body>推迟%s小时,以后的时间是%s<body>" % (offset, dt)
    return HttpResponse(html)

完整的目录文件:

mysite_time2

https://github.com/liuqiuchen/django

Django项目深入理解的更多相关文章

  1. Apache部署django项目

    在此之前,我们一直使用django的manage.py 的runserver 命令来运行django应用,但这只是我们的开发环境,当项目真正部署上线的时候这做就不可行了,必须将我们的项目部署到特定的w ...

  2. Python开发入门与实战2-第一个Django项目

    2.第一个Django项目 上一章节我们完成了python,django和数据库等运行环境的安装,现在我们来创建第一个django project吧,迈出使用django开发应用的第一步. 2.1.创 ...

  3. 二.django项目环境搭建

    Ⅰ.web框架介绍 1.socket 服务端 1)客户端(手机中各种app.浏览器)是用来与服务端(网站的服务器程序)进行交互的 2)服务端类似发电厂,客户端类似电器,socket类似插座,互联网的数 ...

  4. 如何使用Visual Studio Code开发Django项目

    如何获得 Visual Studio Code 访问 http://code.visualstudio.com 下载并安装. 前提条件 安装Python 2.7 及 Python 3.5,Window ...

  5. Pycharm 开发 Django 项目

    1. 安装Pycharm, 自行百度安装教程 2. 安装python3 自行百度安装教程 3. 安装Django框架 使用命令: Window的终端控制台输入:安装Django框架. pip inst ...

  6. 调试django项目的土方法

    pyscripter是自己编写python程序的ide.有时想深入了解一些程序的工作机制,直接看源码可能不能一下子看懂,通过看程序运行的结果来看程序的作用更方便理解程序. 调试django项目时,使用 ...

  7. Django学习笔记之使用 Django项目开发框架

    Django 项目是一个定制框架,它源自一个在线新闻 Web 站点,于 2005 年以开源的形式被释放出来.Django 框架的核心组件有: 用于创建模型的对象关系映射 为最终用户设计的完美管理界面 ...

  8. 创建一个简单的Django项目

    1.首先,启动pycharm,点击File->New Project,如下图所示. 2.在New Project对话框中,选择Django,在Location中设置项目路径以及项目名称,在App ...

  9. Django 项目笔记

    Django 环境的搭建 Django 安装 pip install django==2.1.4 Django 创建项目 django-admin startproject mysite Django ...

随机推荐

  1. Bootstrap 栅格系统(转载)

    源地址:http://www.cnblogs.com/linjiqin/p/3559800.html Bootstrap 栅格系统 目录1.简介2.栅格选项3.列偏移4.嵌套列5.列排序 1.简介Bo ...

  2. sql server多数据库查询 远程数据库查询

    --创建链接服务器 exec sp_addlinkedserver 'srv_lnk','','SQLOLEDB','服务器地址' exec sp_addlinkedsrvlogin 'srv_lnk ...

  3. 解决 webx.ml 中The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path 问题

    在Eclipse 的项目  上,点击鼠标右键 选中 ,并 Finish 即可.

  4. 【java】:解析xml

    ==========================================xml文件<?xml version="1.0" encoding="GB231 ...

  5. Xcode安装的推送证书所在目录

    /Users/用户名/资源库/MobileDevice/Provisioning Profiles

  6. monkeyrunner功能函数

    MonkeyRunner Command Summary 1. #导入模块;    from com.android.monkeyrunner import MonkeyRunner, MonkeyD ...

  7. The vboxdrv kernel module is not loaded

    背景: 在没有关虚拟机的情况下, 直接关了电脑, 我的电脑系统是Centos 6 错误的提示: 在终端执行virtualbox -v 时提示 The vboxdrv kernel module is ...

  8. 正确理解DTO、值对象和POCO

    今天推荐的文章比较技术化也比较简单,但是对于一些初学者而言,可能也是容易搞混的概念:就是如何理解DTO.值对象和POCO之间的区别. 所谓DTO就是数据传输对象(Data Transfer Objec ...

  9. web大文件上传控件-jsp-oracle-bug修复-Xproer.HttpUploader6

    说明: 修复删除文件夹逻辑错误的问题   1.更新up6.js 更新前: 更新后: 代码:         , "RemoveFolder": function (fileSvr) ...

  10. IE6兼容透明JS

    <!--兼容png格式图片--> <!--[]> <script type="text/javascript" src="Js/DD_bel ...