python 网络服务器框架_Django是Python下的一款网络服务器框架
Django是Python下的一款網絡服務器框架。Python下有許多款不同的框架。Django是重量級選手中最有代表性的一位。許多成功的網站和APP都基于Django。雖然Django之于Python,達不到Rail之于Ruby的一統江湖的地位,但Django無疑也是Python在網絡應用方面的一位主將。
向昆汀的致敬,“被解放的姜戈”
Django意外的和昆汀的電影重名。這大大提高了Django的知名度。另外利用電影,宣傳了這個奇怪的詞的發音。
下面是Django的初體驗。
安裝Django
啟動計算機中的Python,嘗試載入Django模塊。如果可以成功載入,那么說明Django已經安裝好:
importdjangoprint(django.VERSION)
如果Django還沒有安裝,可以在命令行,嘗試使用pip安裝:
sudo pip install django
或者使用easy_install:
sudo easy_install django
啟動
使用下面的命令創建項目:
django-admin.py startproject mysite
在當前目錄下,將生成mysite文件夾。其文件樹結構如下:
mysite
├── manage.py
└── mysite
├── __init__.py
├── settings.py
├── urls.py
└── wsgi.py
1 directory, 5 files
進入mysite,啟動服務器:
python manage.py runserver 8000
上面的8000為端口號。如果不說明,那么端口號默認為8000。
打開瀏覽器,訪問http://127.0.0.1:8000,可以看到服務器已經在運行:
雖然有一個能跑的服務器,但什么內容都沒有。
第一個網頁
在http協議中可以看到,網絡服務器是“請求-回應”的工作模式。客戶向URL發送請求,服務器根據請求,開動后廚,并最終為客人上菜。Django采用的MVC結構,即點單、廚房、儲藏室分離。
我們需要一個指揮員,將URL對應分配給某個對象處理,這需要在mysite/mysite下的urls.py設定。Python會根據該程序,將URL請求分給某個廚師。
mysite
├── manage.py
└── mysite
├── __init__.py
├── settings.py
├── urls.py
└── wsgi.py
1 directory, 5 files
將urls.py修改為:
from django.conf.urls import patterns, include, url
from django.contrib import admin
admin.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'),
)
我們添加了最后一行。它將根目錄的URL分配給一個對象進行處理,這個對象是mysite.views.first_page。
用以處理HTTP請求的這一對象還不存在,我們在mysite/mysite下創建views.py,并在其中定義first_page函數:
#-*- coding: utf-8 -*-
from django.http importHttpResponsedeffirst_page(request):return HttpResponse("
世界好
")第一行說明字符編碼為utf-8,為下面使用中文做準備。first_page函數的功能,是返回http回復,即這里的
世界好
。first_page有一個參數request,該參數包含有請求的具體信息,比如請求的類型等,這里并沒有用到。頁面效果如下:
增加app
一個網站可能有多個功能。我們可以在Django下,以app為單位,模塊化的管理,而不是將所有的東西都丟到一個文件夾中。在mysite下,運行manange.py,創建新的app:
$python manage.py startapp west
這個新的app叫做west,用來處理西餐。
我們的根目錄下,出現了一個新的叫做west的文件夾。
mysite/
├── manage.py
├── mysite
│?? ├── __init__.py
│?? ├── __init__.pyc
│?? ├── settings.py
│?? ├── settings.pyc
│?? ├── urls.py
│?? ├── views.py
│?? └── wsgi.py
└── west
├── admin.py
├── __init__.py
├── models.py
├── tests.py
└── views.py
我們還需要修改項目設置,說明我們要使用west。在mysite/setting.py中,在INSTALLED_APPS中,增加"west":
INSTALLED_APPS =('django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','west',
)
增加APP頁面
我們下面為APP增加首頁。我們之前是在mysite/urls.py中設置的URL訪問對象。依然采用類似的方式設置。
另一方面,為了去耦合,實現模塊化,我們應該在west/urls.py中設置URL訪問對象。具體如下:
首先,修改mysite/urls.py:
from django.conf.urls importpatterns, include, urlfrom django.contrib importadmin
admin.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'),
url(r'^west/', include('west.urls')),
)
注意新增加的最后一行。這里,我們提醒指揮員,對于west/的訪問,要參考west/urls.py。
隨后,我們創建west/urls.py,添加內容:
from django.conf.urls importpatterns, include, url
urlpatterns= patterns('',
url(r'^$', 'west.views.first_page'),
)
將URL對應west下,views.py中的first_page函數。
最后,在west下,修改views.py為:
#-*- coding: utf-8 -*-
from django.http importHttpResponsedeffirst_page(request):return HttpResponse("
西餐
")訪問http://127.0.0.1:8000/west,產看效果。
總結
可以看到,Django的創建過程非常簡單。但這只是初次嘗試Django。為了創建一個完整功能的網站,還需要調用Django許多其它的功能。Django的解放,才剛剛開始。
總結
以上是生活随笔為你收集整理的python 网络服务器框架_Django是Python下的一款网络服务器框架的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 怎么圆角变直角_衣柜设计个圆角有什么用?
- 下一篇: 5调用外部浏览器打开代码_浏览器事件循环