1、django安装

    python 2.6 要使用 Django-1.4.5.tar.gz

[root@localhost yum.repos.d]# pip install Django==1.4.5
Downloading/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 Django
Installing 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 755
Successfully installed Django
Cleaning up...


[root@localhost ~]# python
Python 2.6.6 (r266:84292, Sep  4 2013, 07:46:00) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-3)] on linux2
Type "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]# ls
cvst01  manage.py
vi settings.py

TIME_ZONE = 'Asia/Shanghai'

# Language code for this installation. All choices can be found here:
# http://www.i18nguy.com/unicode/language-identifiers.html
LANGUAGE_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]# ls
blog  cvst01  manage.py

[root@localhost cvst01]# cd blog
[root@localhost blog]# ls
__init__.py  models.py  tests.py  views.py


vi 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/blog
vi view.py

from django.http import HttpResponse
def index(req):
	return HttpResponse('<h1>hello welcome to Django</h1>')
[root@localhost cvst01]# ls
blog  cvst01  manage.py
[root@localhost cvst01]# python manage.py runserver
Validating models...

0 errors found
Django 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('<h1>hello welcome to Django</h1>')

”使用文本,现在学习使用html,html文件都是放在app目录的templates下,新建这个目录,在里面加入一个html文件


vi index.html

<html>
<head>
	<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
	<title>CVST</title>
</head>
<body>
<h1>hello everyone!</h1>
</body>
</html>


那么映射响应的动作也变了,所以修改views.py,有两种方法,分别导入不同的模块

[root@localhost blog]# cat views.py

第一种
from django.http import HttpResponse
from django.template import loader,Context

def index(req):
        t = loader.get_template('index.html')
        c = Context({})

        return HttpResponse(t.render(c))



第二种
from django.shortcuts import render_to_response

def index(req):
        return render_to_response('index.html',{})


5、

如何在视图中,动态传入数据

使用模板变量,用{{}}表示

<html>
<head>
	<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
	<title>`title`</title>
</head>
<body>
<h1>hello `user`.`name`!</h1>
<li>age:`user`.`age`</li>
<li>sex:`user`.`sex`</li>
<div>the `user`.`name` say : `user`.`say`</div>
<li>age:`book_list`.`0`</li>
<li>age:`book_list`.`1`</li>
</body>
</html>
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{}等,也可以接收对象user

def 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})