首页 > 代码库 > 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