django学习记录,windows下访问

刚刚不小心提到电源按钮,东西全没了~%>_<%~

昨天研究了一天,在linux系统下写好了东西,急于看效果,没认真看教材,最后在LILING同学的帮助下才在windows下看到了~

反过头复习一下就明白了意思。

---------------------------------------------------------------------------------------------------------------------------------------------------

你的第一个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 
如果你有兴趣查看Python PATH,进入Python交互环境并输入import sys和print sys.path 
一般来说你不必担心设置Python PATH,Python和Django会暗中自动为你做这些事情 
如果你实在好奇,设置Python PATH是manage.py的一个工作 
我们怎么告诉Django使用这些视图代码?答案是URL配置 
URLConf就像是一张Django web站点的内容表格。基本上,这个配置是一个URL模式和对应的view函数的映射,这些函数会在请求某个符合特定模式的URL时被调用。 
URLconf就是告诉Django,"对于这个URL,调用这些代码,对于那个URL,调用那些代码..." 
URL配置就像是你的Django项目的目录 
基本上,它是URL模式和URL模式调用的视图方法的映射 
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.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视图方法处理 
注意几个地方: 
1,在例子中,我们把视图方法current_datetime当成对象传递而不是调用这个方法 
这是Python及其它动态语言的特性,函数是第一类对象,可以像其它变量一样传递,cool吧? 
2,不必在'^now/

 

前面增加斜线来匹配/now/,Django自动在每个表达式前面添加斜线 
3,'^'和'

 

符号很重要,前者表示“匹配string的开始的模式”,后者表示“匹配string结束的模式” 
这个例子很好的解释了概念问题,如果我们使用模式'^now/',则/now/,/now/foo,/now/bar都将匹配 
如果我们使用模式'now/

 

则/now/,/foo/bar/now/等也将匹配 
所以我们使用'^now/

 

,则不多不少只有/now/匹配 
现在测试一下我们对URLConf的修改。运行python manage.py runserver来启动Django的开发服务器 

 

因为我是在linux服务器上,而且没有界面所以只好通过windows来访问,所以这里启动服务我写的是 python manage.py runserver 0.0.0.0:80,这样的话在windows下输入ip地址/now/就访问到了~

高兴~~~


(如果让它一直运行也没有问题,服务器会自动探测Python代码的修改,在必要的时候重新载入,所以没有必要一修改就重起) 
浏览器访问http://127.0.0.1:8000/now/测试一下 
万岁!你已经开发了你的第一个Django-powered Web页面 

 

这个例子就到此为止了。

 

posted @ 2010-05-26 13:23  Phenix.  阅读(585)  评论(0编辑  收藏  举报