高质量的url

还记得带参数的url吗?java和php构建的web程序中,经常可以见到这种? &漫天飞的url:比如想要3个小时以后的时间,可能就会这样:/now/plus?hours=3混乱而且土django利用python强大的正则表达式避免了这个问题,同一个问题,django可以这样传参:/now/plus3hours/更加简洁优雅因为数字是变化的,url匹配自然需要更改:(r'^now/plus\d{1,2}hours/$', hours_ahead),表示匹配1位或2位数值,3位以上的数值这里就界定为非法数据,不再匹配,否则用户输入一个/now/plus99999999999999999999hours/怎么办?写好url匹配,需要写对应的处理:hours_aheadhours_ahead如何才能从url取得参数呢?通过django调用函数的时候,首先传入一个必要参数HttpResponse对象.这是必有的而后对于动态匹配url的,会传入一个string,这个string就是动态匹配的内容,如果是上面的url,那自然就是传入’3′如果url匹配多个值?如何传入?这个稍后说.def hours_ahead(request, offset):offset = int(offset)dt = datetime.datetime.now() datetime.timedelta(hours=offset)html = "In %s hour(s), it will be %s." % (offset, dt)return HttpResponse(html)把string转为int,然后想干嘛就干嘛,这里就不废话了..打开http://127.0.0.1:8000/now/plus3hours/看看是否正确的干活了

Posted by bigzhu May 23, 2007 03:40:00 AM


第一个动态页面

建立一个返回当前时间的页面返回给用户页面需要一个HttpResponse对象需要返回的html文本作为一个参数传递给HttpResponse对象写好的py文件放在Python PATH目录下,让python能找到就可以.from django.http import HttpResponseimport datetimedef current_datetime(request):now = datetime.datetime.now()html = "It is now %s." % nowreturn HttpResponse(html)django如何调用返回HttpResponse对象的py文件呢?秘密就在urls.py文件,生成项目的时候,就会生成这个文件.urls.py的作用就是告诉django:发现用户请求这个url,那就调用这个.py 发现用户请求那个url,那就调用那个url打开urls.pyfrom 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’)),)这里主要看的就是变量urlpatterns,它定义了URL和处理URL的代码的映射patterns用户返回生成urlpatterns,patterns的每个参数都是一个tuple每个tuple表示一个url每个tuple包括两个元素:第一个是一个正则表达式,用于匹配url第二个元素指定要调用的py对象^ 首行匹配$ 行尾匹配 返回时间的代码保存为view.py,放到mysite下面修改urls.py为:from django.conf.urls.defaults import *from mysite.views import … 繼續閱讀

Posted by bigzhu May 22, 2007 10:43:00 PM


安装django建立项目

到http://www.djangoproject.com/download/下载tarball的Django-*.tar.gz解压后,执行python setup.py install即可安装.进入python命令行,import django看是否能正确import来测试是否正确安装了django windows比较傻,建立一个PYTHONPATH环境变量,把D:\Python24\Lib\site-packages\django\bin加进去django-admin.py startproject mysite就建立了一个项目进入这个文件夹manage.py runserver就启动了开发用的web服务器默认情况下runserver命令启动服务器的端口为8000,只监听本地连接如果你希望改变端口,增加一个命令行参数即可python manage.py runserver 8080你也可以改变服务器监听的IP地址,当你同其它开发者分享一个开发站点时很有用python manage.py runserver 0.0.0.0:8080 现在算是建立起这个开发项目了.

Posted by bigzhu May 22, 2007 09:49:00 PM


安装django建立项目

到http://www.djangoproject.com/download/下载tarball的Django-*.tar.gz解压后,执行python setup.py install即可安装.进入python命令行,import django看是否能正确import来测试是否正确安装了django windows比较傻,建立一个PYTHONPATH环境变量,把D:\Python24\Lib\site-packages\django\bin加进去django-admin.py startproject mysite就建立了一个项目进入这个文件夹manage.py runserver就启动了开发用的web服务器默认情况下runserver命令启动服务器的端口为8000,只监听本地连接如果你希望改变端口,增加一个命令行参数即可python manage.py runserver 8080你也可以改变服务器监听的IP地址,当你同其它开发者分享一个开发站点时很有用python manage.py runserver 0.0.0.0:8080 现在算是建立起这个开发项目了.

Posted by bigzhu May 22, 2007 01:49:00 PM


安装django建立项目

到http://www.djangoproject.com/download/下载tarball的Django-*.tar.gz解压后,执行python setup.py install即可安装.进入python命令行,import django看是否能正确import来测试是否正确安装了django windows比较傻,建立一个PYTHONPATH环境变量,把D:\Python24\Lib\site-packages\django\bin加进去django-admin.py startproject mysite就建立了一个项目进入这个文件夹manage.py runserver就启动了开发用的web服务器默认情况下runserver命令启动服务器的端口为8000,只监听本地连接如果你希望改变端口,增加一个命令行参数即可python manage.py runserver 8080你也可以改变服务器监听的IP地址,当你同其它开发者分享一个开发站点时很有用python manage.py runserver 0.0.0.0:8080 现在算是建立起这个开发项目了.

Posted by bigzhu May 22, 2007 06:49:00 AM