Python之DjangoWeb(二)

一、动态内容      

 创建一个动态的内容,在网页时显示当前的时间和日期。代码如下:

Code:
  1. from django.http import HttpResponse   
  2. import datetime      
  3. def current_datetfrom django.http import HttpResponse  
    import datetime  
    def current_datetime(request):  
        now = datetime.datetime.now()  
        html = "It is now %s." % now  
        return HttpResponse(html)ime(request);        

1,首先,我们从django.http模块import HttpResponse类
2,然后,我们从Python标准库import datetime模块
datetime模块包含一些处理日期和时间的类和方法,并且包含一个返回当前时间的方法
3,然后,我们定义current_datetime方法
这是一个视图方法,它使用一个HttpRequest对象作为它的第一个参数
每个视图方法都使用HttpRequest对象作为自己的第一个参数
在这个方法里,我们把这个参数叫做request
Django并不关心视图方法的名字,我们也不必遵循某种特定的命名方式供Django鉴别。我们以current_datetime命名这个方法
纯粹是因为它正好可以明确的表达方法的意图,你可以任意地命名view方法,current_datetime清楚的表明了它会做什么事情
一会我们会解释Django怎样找到这个方法
4,该方法的第一行代码计算当前日期和时间,并存储在本地变量now中
5,该方法的第二行代码使用Python的格式化string能力构建了一个HTML应答
string里面的%s是一个占位符,string后面的百分号表示使用now变量的值代替%s
6,最后,视图返回一个包含生成的HTML的HttpResponse对象
每个视图方法都会返回一个HttpResponse对象

二、配置URl

这个视图方法返回了一个包含当前日期和时间的HTML页面
但是这些代码应该放在哪?怎样告诉Django使用这些代码呢?
第一个问题的答案是:你可以把view的代码放在你的Python PATH下。

我们将这些代码保存在views.py里面,并将views.py放在mysite目录下

Python PATH是一个你系统的目录列表,当你使用Python import语句时Python会查看这些目录
例如你的Python PATH设置成['', '/usr/lib/python2.4/site-packages', '/home/mycode']
如果你执行代码from foo import bar,Python将首先在当前目录下查找叫foo.py的模块
第一个Python PATH为空string,这表示当前目录
如果找不到foo.py,Python将尝试查找/usr/lib/python2.4/site-packages/foo.py
最后,如果foo.py还是找不到,Python将报ImportError

我们怎么告诉Django使用这些视图代码?答案是URL配置
URLConf就像是一张Django web站点的内容表格。基本上,这个配置是一个URL模式和对应的view函数的映射,这些函数会在请求某个符合特定模式的URL时被调用。
URLconf就是告诉Django,"对于这个URL,调用这些代码,对于那个URL,调用那些代码..."
URL配置就像是你的Django项目的目录
基本上,它是URL模式和URL模式调用的视图方法的映射
django-admin.py startproject会自动生成一个URL配置文件urls.py,默认情况下它是这样的:
 

Code:
  1. from django.conf.urls.defaults import *      
  2. urlpatterns = patterns('',      
  3.  # Example:      
  4.  # (r'^mysite/', include('mysite.apps.foo.urls.foo')),      
  5.      
  6.  # Uncomment this for admin:      
  7. # (r'^admin/', include('django.contrib.admin.urls')),      
  8. )   

我们可以这样子来修改代码:

Code:
  1. from django.conf.urls.defaults import *      
  2. form mysite.views import current_datetime      
  3.      
  4. urlpatterns = patterns('',      
  5.  (r'^now/$', current_datetime),      
  6. )    

我们在来看看我们所改的代码:首先,我们从mysite/views.py模块import current_datetime视图
该模块在Python的import语法中被转换成mysite.views
然后我们增加一行(r'^now/$', current_datetime),它指向一个URL模式
这是一个Python元组,第一个元素是一个正则表达式,第一个是视图方法
这样,我们就告知Django对URL /now/的请求应该被current_datetime视图方法处理

理解到这里,先休息一下先,慢慢消化,呵呵

你可能感兴趣的:(html,python,django,String,url,import)