您的位置:首页 > 编程语言 > Go语言

django学习记录,windows下访问

2010-05-26 13:23 232 查看
刚刚不小心提到电源按钮,东西全没了~%>_<%~

昨天研究了一天,在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,默认情况下它是这样的:

from django.conf.urls.defaults import *

urlpatterns = patterns('',

# Example:

# (r'^mysite/', include('mysite.apps.foo.urls.foo')),

# Uncomment this for admin:

# (r'^admin/', include('django.contrib.admin.urls')),

)

让我们来看看这些代码

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视图:

from django.conf.urls.defaults import *

form mysite.views import current_datetime

urlpatterns = patterns('',

(r'^now/$', current_datetime),

)

于是就变成了这样.

我们做了两处改动。首先,我们从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页面

这个例子就到此为止了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: