首页 > 代码库 > python django
python django
---恢复内容开始---
from django.conf.urls import patterns, include, urlfrom django.contrib import adminadmin.autodiscover()urlpatterns = patterns(‘‘, # Examples: # url(r‘^$‘, ‘mysite.views.home‘, name=‘home‘), # url(r‘^blog/‘, include(‘blog.urls‘)), url(r‘^admin/‘, include(admin.site.urls)), url(r‘^$‘, ‘mysite.views.first_page‘),)
urls是网站URL映射,说明什么URL对应什么模块。 APP就是一个小型的WEB SERVER,
render是将代码与模板对应起来,可以生成一套网页或者是响应。
一个用户请求过来先到了project的urls.py上,然后检查URLS,找到对应app的urls.py,运行urls对应的模块
用render_to_response()简化views层
http://www.nowamagic.net/academy/detail/1318431
from django.http import HttpResponsedef hello(request): return HttpResponse("Hello NowaMagic")
每个视图函数至少要有一个参数,通常被叫作request。 这是一个触发这个视图、包含当前Web请求信息的对象,是类django.http.HttpRequest 的一个实例。在这个示例中,我们虽然不用 request 做任何事情,然而它仍必须是这个视图的第一个参数。
注意视图函数的名称并不重要;并不一定非得以某种特定的方式命名才能让 Django 识别它。 在这里我们把它命名为:hello,是因为这个名称清晰的显示了视图的用意。同样地,你可以用诸 如:hello_wonderful_beautiful_world,这样难看的短句来给它命名。 在下一小节(Your First URLconf),将告诉你Django是如何找到这个函数的。
这个函数只有简单的一行代码: 它仅仅返回一个HttpResponse对象,这个对象包含了文本“Hello world”。
这里主要讲的是: 一个视图就是Python的一个函数。这个函数第一个参数的类型是HttpRequest;它返回一个HttpResponse实例。为了使一个 Python的函数成为一个Django可识别的视图,它必须满足这两个条件。 (也有例外,但是我们稍后才会接触到。)
from django.http import HttpResponseimport datetimedef hello(request): return HttpResponse("Hello NowaMagic")def current_datetime(request): now = datetime.datetime.now() html = "<html><body>It is now %s.</body></html>" % now return HttpResponse(html)
但是如果要import一个不同目录的文件(例如b.py)该怎么做呢?
首先需要使用sys.path.append方法将b.py所在目录加入到搜素目录中。然后进行import即可,例如:
import sys sys.path.append(‘c:\xxxx\b.py‘) # 这个例子针对 windows 用户来说的
面的代码有时会找不到模块或者包(ImportError: No module named xxxxxx),这是因为:
sys模块是使用c语言编写的,因此字符串支持 ‘\n‘, ‘\r‘, ‘\t‘等来表示特殊字符。所以上面代码最好写成:
sys.path.append(‘c:\\xxx\\b.py‘) # 或者sys.path.append(‘c:/xxxx/b.py‘)
这样可以避免因为错误的组成转义字符,而造成无效的搜索目录(sys.path)设置。
在前面了解过 Python 的序列,特别是 list 和 tuple 之后,我们就可以解释一些 Python 里特有的一些编程技巧,额……比如多重赋值。
>>> t = 1,2,3>>> t(1, 2, 3)>>> a,b,c = t>>> a1>>> b2>>> c3
Python xrange与range的区别
xrange 用法与 range 完全相同,所不同的是生成的不是一个list对象,而是一个生成器。
>>> xrange(5)xrange(5)>>> list(xrange(5))[0, 1, 2, 3, 4]>>> xrange(1,5)xrange(1, 5)>>> list(xrange(1,5))[1, 2, 3, 4]>>> xrange(0,6,2)xrange(0, 6, 2)>>> list(xrange(0,6,2))[0, 2, 4]
由上面的示例可以知道:要生成很大的数字序列的时候,用xrange会比range性能优很多,因为不需要一上来就开辟一块很大的内存空间。
for i in range(0, 100): print i for i in xrange(0, 100): print i
xrange 和 range 这两个基本上都是在循环的时候用。结果一样
python django