• 再写一个Django动态程序

    在Django中编写Python代码
    服务器君一共花费 9.292 ms 进行了 4 次数据库查询,努力地为您提供了这个页面。
    广告很萌的

    什么?写个 Hello World 不满足?那我们继续深入一下……比如写个显示现在时间的页面。

    经过前面 Hello World 的学习,我们也知道写 Django 页面的一般过程。

    先把程序写出来

    1. 先设计视图函数,把前面一小节的内容也懒得删了:

    from django.http import HttpResponse
    import datetime
    
    def hello(request):
        return HttpResponse("Hello NowaMagic")
    
    def current_datetime(request):
        now = datetime.datetime.now()
        html = "<html><body>It is now %s.</body></html>" % now
        return HttpResponse(html)
    

    代码很好懂,不多说了,接下来是配置 URL:

    from django.conf.urls import patterns, include, url
    from PythonProject.views import hello, current_datetime
    
    urlpatterns = patterns('',
        ('^hello/$', hello),
        ('^time/$', current_datetime),
    )
    

    现在访问 http://127.0.0.1:8000/time/,可以显示:

    It is now 2013-07-16 11:37:44.236000.
    

    动态内容

    我们的Hello world视图是用来演示基本的Django是如何工作的,但是它不是一个动态网页的例子,因为网页的内容一直是一样的. 每次去查看/hello/,你将会看到相同的内容,它类似一个静态HTML文件。

    我们的第二个视图,将更多的放些动态的东西例如当前日期和时间显示在网页上,这将非常好,简单的下一步,因为它不引入了数据库或者任何用户的输入,仅仅是输出显示你的服务器的内部时钟。它仅仅有限度的比Hello World刺激一些,但是它将演示一些新的概念。

    这个视图需要做两件事情: 计算当前日期和时间,并返回包含这些值的HttpResponse 如果你对python很有经验,那肯定知道在python中需要利用datetime模块去计算时间。下面演示如何去使用它:

    >>> import datetime
    >>> now = datetime.datetime.now()
    >>> now
    datetime.datetime(2013, 7, 16, 14, 55, 34, 905000)
    >>> print now
    2013-07-16 14:55:34.905000
    >>> 
    
    • 以上代码很简单,并没有涉及 Django,它仅仅是Python代码。需要强调的是,你应该意识到哪些是纯 Python 代码,哪些是 Django 特性代码。因为你学习了 Django,希望你能将 Django 的知识应用在那些不一定需要使用 Django 的项目上。

    为了让Django视图显示当前日期和时间,我们仅需要把语句:datetime.datetime.now()放入视图函数,然后返回一个HttpResponse对象即可。

    让我们分析一下改动后的views.py:

    在文件顶端,我们添加了一条语句:import datetime。这样就可以计算日期了。

    函数中的第一行代码计算当前日期和时间,并以 datetime.datetime 对象的形式保存为局部变量 now 。

    函数的第二行代码用 Python 的格式化字符串(format-string)功能构造了一段 HTML 响应。 字符串中的%s是占位符,字符串后面的百分号表示用它后面的变量now的值来代替%s。变量%s是一个datetime.datetime对象。它虽然不是一个字符串,但是%s(格式化字符串)会把它转换成字符串,如:2008-12-13 14:09:39.002731。这将导致HTML的输出字符串为:It is now 2008-12-13 14:09:39.002731。

    最后,正如我们刚才写的hello函数一样,视图返回一个HttpResponse对象,它包含生成的响应。

    添加上述代码之后,还要在urls.py中添加URL模式,以告诉Django由哪一个URL来处理这个视图。 用/time/之类的字眼易于理解。

    写好视图并且更新URLconf之后,运行命令python manage.py runserver以启动服务,在浏览器中输入http://127.0.0.1:8000/time/,你将看到当前的日期和时间。

    现在,你也学会如何在 Django 中编写 Python 代码了。

更多 推荐条目

Welcome to NowaMagic Academy!

现代魔法 推荐于 2013-02-27 10:23   

本章最新发布
随机专题
  1. [Python程序设计] urls.py设置技巧 8 个条目
  2. [数据库技术] SQL基础语法 1 个条目
  3. [Python程序设计] Django架构流程分析 7 个条目
  4. [移动开发] Android View注入框架Butter Knife 3 个条目
  5. [Python程序设计] Django模板系统 11 个条目
  6. [软件工程与项目管理] 浏览器与CSS渲染技巧 2 个条目
  7. [PHP程序设计] PHP与函数式编程 1 个条目
  8. [软件工程与项目管理] 开始使用Git 3 个条目
  9. [数据库技术] 无限级分类数据表设计 4 个条目
  10. [软件工程与项目管理] 呈现树的构建 13 个条目
  11. [移动开发] Android Studio里的Gradle 3 个条目
  12. [C语言程序设计] 结构体基本知识 1 个条目
窗口 -- [博客]