django框架初探html
1.web框架介紹python
web框架本質是一個socket服務端。每個端口只能被一個程序監聽。web
web程序分爲兩個部分:django
服務器程序:對socket服務器封裝,解析http請求,發送http響應。flask
應用程序:負責具體的業務邏輯。ubuntu
WSGI:(Web Service Gateway Interface)WSGI接口定義很是簡單,它只要求Web開發者實現一個函數,就能夠響應HTTP請求。設計模式
咱們先編寫hello.py
,實現Web應用程序的WSGI處理函數:瀏覽器
#hello.py服務器
def application(environ, start_response):
mvc
start_response('200 OK', [('Content-Type', 'text/html')])
return '<h1>Hello, web!</h1>'
上面的application()
函數就是符合WSGI標準的一個HTTP處理函數,它接收兩個參數:
environ:一個包含全部HTTP請求信息的dict
對象;
start_response:一個發送HTTP響應的函數。
application()
函數必須由WSGI服務器來調用。Python內置了一個WSGI服務器,這個模塊叫wsgiref,它是用純Python編寫的WSGI服務器的參考實現。所謂「參考實現」是指該實現徹底符合WSGI標準,可是不考慮任何運行效率,僅供開發和測試使用。
而後,再編寫一個server.py
,負責啓動WSGI服務器,加載application()
函數:
# server.py
# 從wsgiref模塊導入:
from wsgiref.simple_server import make_server
web框架就是將web應用開發中通用的部分抽象出來,像造房子同樣,造成一個框架,再去實現咱們特定的功能。
常見的Python Web框架有:
django 全能型
tornado 優秀的異步框架
web.py 小巧的web框架
flask 優秀的輕量級的web框架
設計模式:
mtv:
m:model模型
t:template 模型(頁面)
v:view 視圖
# 導入咱們本身編寫的application函數: from hello import application # 建立一個服務器,IP地址爲空,端口是8000,處理函數是application: httpd = make_server('', 8000, application) print "Serving HTTP on port 8000..." # 開始監聽HTTP請求: httpd.serve_forever()
確保以上兩個文件在同一個目錄下,而後運行server.py來啓動WSGI服務器,啓動成功後,打開瀏覽器,輸入http://localhost:8000/
,就能夠看到結果了。http://localhost:8000/
mvc:Model-View-Controller,中文名「模型-視圖-控制器」。和mtv沒有本質的區別。
2.django框架的介紹
環境搭建,django安裝
準備環境:
ubuntu
python3.5+
pycharm 2017.1.5+專業版
MySQL
每建立一個新的django項目,都要新建一個python隔離環境。
隔離環境:
1.查看 workon
2.建立 mkvirtualenv -p /usr/bin/python3.6 envname
3.進入 workon envname
4.退出 deactivate
5.刪除虛擬環境 rmvirtualenv envname
建立一個名爲crm的python隔離環境 mkvirtualenv -p /usr/bin/python3.6 crm
安裝一個django包:pip install django
django簡單操做:
1.建立項目: django-admin startproject <projectname>
2.pycharm建立項目遠程關聯:
3.啓動服務
命令行:python manage.py runserver ip:port 在項目根目錄
(ip:0.0.0.0)
用pycharm配置:
第一個View:
項目和應用
項目:有一些設置的django
建立一個應用:python manage.py startapp appname
應用能夠有多個,應用之間經過項目交互