1,安裝python包管理工具pip
在ubuntu環(huán)境下怪瓶,我們通常apt-get來(lái)安裝軟件,當(dāng)時(shí)pip是專門(mén)用來(lái)管理python包的工具呼胚,相對(duì)apt-get來(lái)說(shuō)饮寞,安裝與python有關(guān)的包更加方便,能夠精確控制安裝軟件的版本芋肠,同時(shí)乎芳,當(dāng)我們直接拿到別人的django工程時(shí),如果有一些依賴的包帖池,能夠很快的使用pip解決依賴關(guān)系奈惑,pip之于python,npm之于node.js睡汹。
安裝pip工具
sudo apt-get install python-pip
2,安裝django
通過(guò)第一步中pip工具肴甸,來(lái)安裝django,有時(shí)我們下指定安裝某個(gè)版本
sudo pip install Django==1.7.1
當(dāng)然也可以直接通過(guò)apt-get來(lái)安裝django
sudo apt-get install Django (不推薦)
當(dāng)然也可以通過(guò)源碼安裝(耗時(shí)耗力囚巴,不推薦)
python命令行下檢驗(yàn)是否安裝成功
>>> import django
>>> django.VERSION
(1, 7, 1, 'final', 0)
3,新建django工程
django-admin startproject website 或者
django-admin.py startproject website
通過(guò)Linux源碼安裝或者pip安裝django時(shí)原在,django-admin有可能用不了,推薦用django-admin.py
執(zhí)行完上述命令彤叉,會(huì)在當(dāng)前目錄新建website工程庶柿,目錄結(jié)構(gòu)如下
fage:Server$ tree website
website
├── manage.py
└── website
├── __init__.py
├── settings.py
├── urls.py
└── wsgi.py
1 directory, 5 files
新建一個(gè)website目錄,還有website子目錄秽浇,還有四個(gè)py文件
manage.py: ---------Django項(xiàng)目里面的命令行工具浮庐,用于跟項(xiàng)目的各種交互,通過(guò)它可以調(diào)用django shell和數(shù)據(jù)庫(kù)
init.py: -------一個(gè)空文件讓Python知道這個(gè)目錄是一個(gè)Python包
settings.py -------- 包含了項(xiàng)目的默認(rèn)設(shè)置,包括數(shù)據(jù)庫(kù)信息柬焕,調(diào)試標(biāo)志,時(shí)區(qū)审残,靜態(tài)文件目錄
urls.py ----- 負(fù)責(zé)把URL模式映射到應(yīng)用程序,建立網(wǎng)址和視圖函數(shù)之間的對(duì)應(yīng)關(guān)系
wsgi.py ----- 負(fù)責(zé)和Nginx或者Apache交互用的击喂,當(dāng)使用django自帶的web服務(wù)器時(shí)不用理會(huì)维苔。
manage.py文件,我們會(huì)經(jīng)常用到懂昂,但是我們基本不會(huì)改里面的內(nèi)容介时,只是用來(lái)啟動(dòng)web服務(wù),同步數(shù)據(jù)庫(kù)等等
init.py基本不用關(guān)注
settings.py文件是我們經(jīng)常需要修改的文件
urls.py也是我們經(jīng)常需要修改的文件
wsgi.py當(dāng)你把django部署在生產(chǎn)環(huán)境,用django自帶的web服務(wù)器就不是很合適沸柔,這個(gè)時(shí)候我們需要部署Nginx或者Apache循衰,此時(shí)需要設(shè)置wsgi.py
4,新建app
python manage.py startapp blog
fage:website$ tree
.
├── blog
│ ├── admin.py
│ ├── __init__.py
│ ├── migrations
│ │ └── __init__.py
│ ├── models.py
│ ├── tests.py
│ └── views.py
├── manage.py
└── website
├── __init__.py
├── __init__.pyc
├── settings.py
├── settings.pyc
├── urls.py
└── wsgi.py
5,修改settings.py
添加app到 settings.py
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'blog',
)
設(shè)置語(yǔ)言和時(shí)區(qū)
LANGUAGE_CODE = 'zh-CN'
TIME_ZONE = 'Asia/Shanghai'
- zh-CN是為了django能夠顯示中文
- Asia/Shanghai是將時(shí)區(qū)設(shè)置為本地時(shí)區(qū)
6,修改urls.py
設(shè)置urls.py有兩種方式
- 6.1直接在website的urls.py中設(shè)置
from django.conf.urls import patterns, include, url
from django.contrib import admin
urlpatterns = patterns('',
# Examples:
# url(r'^$', 'my0813.views.home', name='home'),
# url(r'^blog/', include('blog.urls')),
url(r'^admin/', include(admin.site.urls)),
url(r'^blog/$', 'blog.views.blog_index', name='blog_index'),
)
- 6.2通過(guò)website的urls.py和blog應(yīng)用中的urls.py
設(shè)置website的urls.py
from django.conf.urls import patterns, include, url
from django.contrib import admin
urlpatterns = patterns('',
# Examples:
# url(r'^$', 'my0813_01.views.home', name='home'),
# url(r'^blog/', include('blog.urls')),
url(r'^admin/', include(admin.site.urls)),
url(r'^blog/', include('blog.urls')),#blog.urls的''不能省略
)
在blog目錄新建urls.py,編輯urls.py
from django.conf.urls import patterns, url
urlpatterns = patterns('',
# Examples:
# url(r'^$', 'my0813_02.views.home', name='home'),
# url(r'^blog/', include('blog.urls')),
url(r'^$', 'blog.views.blog_index'),#$符號(hào)之后不要加/
)
- 6.3urls.py的詳細(xì)請(qǐng)參考
urls.py詳解
7,編輯視圖文件
編輯blog目錄下的views.py文件
from django.shortcuts import render
from django.http import HttpResponse
# Create your views here.i
def blog_index(request):
return HttpResponse("Hello, world.")
8,運(yùn)行web服務(wù)
因?yàn)闆](méi)有設(shè)置從html文件中獲取數(shù)據(jù), 就沒(méi)有設(shè)置Templates目錄和static目錄褐澎,只是為了簡(jiǎn)單地顯示一個(gè)hello world
- 8.1本地運(yùn)行
只能在本機(jī)訪問(wèn)
python manage.py runserver 8000
- 8.2遠(yuǎn)端訪問(wèn)
python manage.py runserver 0.0.0.0:8000