django学习记录,动态web页面尝试

继续昨天的例子,创建了mysite后;

使用touch 命令创建了一个test.py,内容为:

 

1 from django.http import HttpResponse
2  import datetime
3  def current_datetime(request):
4   now = datetime.datetime.now()
5   html = "It is now %s." % now
6   return HttpResponse(html)

 

让我们来看看代码 
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 
(给html纯化论者们:我们没有写DOCTYPE申明,没有<head>标签,等等等等,我们只是尽量让这个页面简洁明了。) 
6,最后,视图返回一个包含生成的HTML的HttpResponse对象 
每个视图方法都会返回一个HttpResponse对象,例外的情况我们后面会解释。   - -|||

 


如果你有兴趣查看Python PATH,进入Python交互环境并输入import sys和print sys.path 
一般来说你不必担心设置Python PATH,Python和Django会暗中自动为你做这些事情 

我的显示:

 

>>> print sys.path
['', '/usr/lib/python2.5', '/usr/lib/python2.5/plat-linux2', '/usr/lib/python2.5/lib-tk', '/usr/lib/python2.5/lib-dynload', '/usr/local/lib/python2.5/site-packages', '/usr/lib/python2.5/site-packages', '/var/lib/python-support/python2.5']

 

 

 

1 >>> import sys
2  >>> print sys.path['', '/usr/lib/python2.5', '/usr/lib/python2.5/plat-linux2', '/usr/lib/python2.5/lib-tk', '/usr/lib/python2.5/lib-dynload', '/usr/local/lib/python2.5/site-packages', '/usr/lib/python2.5/site-packages', '/var/lib/python-support/python2.5']

 

 

 


django-admin.py startproject会自动生成一个URL配置文件urls.py,默认情况下它是这样的: 

 

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  )

 


让我们来看看这些代码 
1,第一行import django.conf.urls.defaults模块的所有对象,包括一个叫patterns的方法 
2,第二行调用patterns()方法并将接过保存到urlpatterns变量,patterns()方法只传了一个空string作为参数 
其它行被注释掉了 
这里主要看的就是变量urlpatterns,它定义了URL和处理URL的代码的映射 
默认情况下所有的URL配置被注释掉了,这意味着你的Django项目是空的,这让Django得知显示“It worked!”页面 
如果你的URL配置是空的,Django假设你刚开始一个新的项目,这样就显示这条信息 
让我们编辑urls.py来暴露current_datetime视图: 

最后改成了这样:

 

1 from django.conf.urls.defaults import*
2 form mysite.test import current_datetime
3  #Uncomment the next two line to enable the admin:
4 #from django.contrib import admin
5 #admin.autodiscover()
6  
7 urlpatterns = patterns(' ',
8     (r'^now/$', current_datetime),
9    #Example:
10     # (r'^mysite/', include('mysite.foo.urls')),
11  
12    #Uncomment the admin/doc line below and add 'django.contrib.admindocs'
13     #to INSTALLED_APPS to enable admin documentation:
14     # (r'^admin/doc/', include('django.contrib.admindocs.urls')),
15  
16    #Uncomment the next line to enable the admin:
17     # (r'^admin/(.*)', admin.site.root),

 

linux下的就到此为止了,其实还是在重复昨天的事情..

 

posted @ 2010-05-25 17:43  Phenix.  阅读(502)  评论(0编辑  收藏  举报