python初試
Django是Python下的一款網路伺服器框架。Python下有許多款不同的框架。Django是重量級選手中最有代表性的一位。許多成功的網站和APP都基於Django。雖然Django之於Python,達不到Rail之於Ruby的一統江湖的地位,但Django無疑也是Python在網路應用方面的一位主將。
Django意外的和昆汀的電影重名。這大大提高了Django的知名度。另外利用電影,宣傳了這個奇怪的詞的發音。
安裝Django
啟動計算機中的Python,嘗試載入Django模組。如果可以成功載入,那麼說明Django已經安裝好:
import django
print(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協議中可以看到,網路伺服器是“請求-回應”的工作模式。客戶向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 import HttpResponse
def first_page(request):
return HttpResponse("<p>世界好</p>")
第一行說明字元編碼為utf-8,為下面使用中文做準備。first_page函式的功能,是返回http回覆,即這裡的<p>世界好</p>。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',
)
可以看到,除了新增加的west,Django已經預設載入了一些功能性的app,比如使用者驗證、會話管理、顯示靜態檔案等。我們將在以後講解它們的用途。
增加APP頁面
我們下面為APP增加首頁。我們之前是在mysite/urls.py中設定的URL訪問物件。依然採用類似的方式設定。
另一方面,為了去耦合,實現模組化,我們應該在west/urls.py中設定URL訪問物件。具體如下:
首先,修改mysite/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(r'^west/', include('west.urls')),
)
注意新增加的最後一行。這裡,我們提醒指揮員,對於west/的訪問,要參考west/urls.py。
隨後,我們建立west/urls.py,新增內容:
from django.conf.urls import patterns, 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 import HttpResponse
def first_page(request):
return HttpResponse("<p>西餐</p>")
訪問/west,檢視效果。
來自 “ ITPUB部落格 ” ,連結:https://blog.itpub.net/70026630/viewspace-3000123/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 初試PythonPython
- python初試七Python
- python初試二Python
- python初試三Python
- python初試四Python
- python初試五Python
- python初試六Python
- Python爬蟲初試Python爬蟲
- Python呼叫MySQL模組初試PythonMySql
- Python Scrapy 爬蟲(二):scrapy 初試Python爬蟲
- 初試
- 初試python的socket程式設計--ftpPython程式設計FTP
- Python 快速教程(Django01):初試天涯PythonDjango
- Kafka初試Kafka
- github 初試Github
- 初試 GithubGithub
- 初試Gevent – 高效能的Python併發框架Python框架
- 騰訊前端初試前端
- Rust: tokio初試Rust
- Vue + GraphQL初試Vue
- 初嘗試swiftSwift
- sqlite 小刀 初試SQLite
- Accessability 專案初試
- 初學PythonPython
- 初識pythonPython
- 2020年焊工(初級)考試試題及焊工(初級)考試軟體
- PHP 初級 試崗要求PHP
- 初試MongoDB資料庫MongoDB資料庫
- 阿里雲IoT初試阿里
- Swift 3 0 FMDB 初試Swift
- 初試npm包釋出NPM
- 初試php中的curlPHP
- 【PL/SQL】初試 bulk collectSQL
- HTML+JS初試水HTMLJS
- 初識效能測試(測試小白麵試總結)
- 致 Python 初學者Python
- 初識tsfresh in PythonPython
- 初學Python——字典Python