1、django安装
python 2.6 要使用 Django-1.4.5.tar.gz
[root@localhost yum.repos.d]# pip install Django==1.4.5Downloading/unpacking Django==1.4.5 Downloading Django-1.4.5.tar.gz (7.7MB): 7.7MB downloaded Running setup.py (path:/tmp/pip_build_root/Django/setup.py) egg_info for package DjangoInstalling collected packages: Django Running setup.py install for Django changing mode of build/scripts-2.6/django-admin.py from 644 to 755 changing mode of /usr/bin/django-admin.py to 755Successfully installed DjangoCleaning up...[root@localhost ~]# pythonPython 2.6.6 (r266:84292, Sep 4 2013, 07:46:00) [GCC 4.4.7 20120313 (Red Hat 4.4.7-3)] on linux2Type "help", "copyright", "credits" or "license" for more information.>>> import django>>>
2、django 使用,第一个project
[root@localhost pyfile]# django-admin.py startproject cvst01[root@localhost cvst01]# pwd/root/pyfile/cvst01[root@localhost cvst01]# lscvst01 manage.py
vi settings.pyTIME_ZONE = 'Asia/Shanghai'# Language code for this installation. All choices can be found here:# http://www.i18nguy.com/unicode/language-identifiers.htmlLANGUAGE_CODE = 'zh-cn'INSTALLED_APPS = ( 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.sites', 'django.contrib.messages', 'django.contrib.staticfiles', 'blog',)
3、第一个web app应用[root@localhost cvst01]# django-admin.py startapp blog[root@localhost cvst01]# pwd/root/pyfile/cvst01[root@localhost cvst01]# lsblog cvst01 manage.py[root@localhost cvst01]# cd blog[root@localhost blog]# ls__init__.py models.py tests.py views.pyvi urls.py## 映射一个动作,当访问blog/index的时候,就调用blog应用里面,views模块里的index方法urlpatterns = patterns('', # Examples: # url(r'^$', 'cvst01.views.home', name='home'), # url(r'^cvst01/', include('cvst01.foo.urls')), # Uncomment the admin/doc line below to enable admin documentation: # url(r'^admin/doc/', include('django.contrib.admindocs.urls')), # Uncomment the next line to enable the admin: # url(r'^admin/', include(admin.site.urls)), url(r'^blog/index/$','blog.views.index'),)
##使用index方法,返回一个HttpResponse[root@localhost blog]# pwd/root/pyfile/cvst01/blogvi view.pyfrom django.http import HttpResponsedef index(req): return HttpResponse('hello welcome to Django
')
[root@localhost cvst01]# lsblog cvst01 manage.py[root@localhost cvst01]# python manage.py runserverValidating models...0 errors foundDjango version 1.4.5, using settings 'cvst01.settings'Development server is running at http://127.0.0.1:8000/Quit the server with CONTROL-C.[07/Apr/2016 22:08:57] "GET / HTTP/1.1" 404 1900[07/Apr/2016 22:09:10] "GET /blog/index HTTP/1.1" 301 0[07/Apr/2016 22:09:10] "GET /blog/index/ HTTP/1.1" 200 32[07/Apr/2016 22:09:15] "GET /blog/ HTTP/1.1" 404 1915[07/Apr/2016 22:09:20] "GET /blog/index/ HTTP/1.1" 200 32
4、上面的“
HttpResponse('hello welcome to Django
')
”使用文本,现在学习使用html,html文件都是放在app目录的templates下,新建这个目录,在里面加入一个html文件
vi index.html
CVST hello everyone!
那么映射响应的动作也变了,所以修改views.py,有两种方法,分别导入不同的模块
[root@localhost blog]# cat views.py第一种from django.http import HttpResponsefrom django.template import loader,Contextdef index(req): t = loader.get_template('index.html') c = Context({}) return HttpResponse(t.render(c))第二种from django.shortcuts import render_to_responsedef index(req): return render_to_response('index.html',{})
5、
如何在视图中,动态传入数据
使用模板变量,用{
{}}表示`title` hello `user`.`name`!
the `user`.`name` say : `user`.`say`
class Person(object): def __init__(self,name,age,sex): self.name = name self.age = age self.sex = sex def say(self): return 'I am ' + self.name#可以接收变量(my page),字典 user{}等,也可以接收对象userdef index(req):# user = {'name':'kate','age':'23','sex':'male'} book_list = ['Python','Java','Shell'] user = Person('Tom',23,'male') return render_to_response('index.html',{'title':'my page','user':user,'book_list':book_list})