前記:html
堅持寫學習筆記今天是第六天了,今天事情有點多想起來還沒寫趕快補起來,學習Python已經快一個星期了,大部分的知識點已經跟着廖雪峯老師的教程瞭解了一下,因爲自學能力不強還有不少知識點掌握不牢固,在把教程內容所有總結完了以後還須要一段時間去熟練掌握Python的開發技術,計劃是找個Diango項目上手,在這個過程當中牢固Python基礎知識和了解Diango基本框架,應該是跟着視頻教程作把。短時間的計劃就是這樣。可是這幾天看了看招聘廣告數據結構算法也是很看中的,大一時數據結構學的還行但是如今可能忘得差很少了,還有數據庫一直都是沒有學好,如今用到的數據庫不多也不知道本身到底幾斤幾兩,數據結構算法以及數據庫都是之後須要重點學習的方面了,加油!天天都要堅持寫隨筆!但願本身能堅持兩個月python
SQLAlchemy:ORM技術:Object-Relational Mapping,把關係數據庫的表結構映射到對象上,在Python中,最有名的ORM框架是SQLAlchemyweb
2.WSGI接口:算法
Web應用的本質:瀏覽器發送一個HTTP請求,服務器收到請求,生成一個HTML文檔,服務器把HTML文檔做爲HTTP響應的Body發送給瀏覽器,瀏覽器收到HTTP響應,從HTTP Body取出HTML文檔並顯示數據庫
Apache、Nginx、Lighttpd等這些常見的靜態服務器:把HTML用文件保存好,用他們接收用戶請求,從文件中讀取HTMLflask
WSGI接口(Web Server Gateway Interface):統一的接口處理TCP鏈接、HTTP原始請求和響應格式:瀏覽器
def application(environ, start_response): #environ:一個包含全部HTTP請求信息的對象 start_response:一個發送HTTP響應的函數。 start_response('200 OK', [('Content-Type', 'text/html')]) #發送了HTTP響應的Header,兩個參數:HTTP響應碼和表示的HTTP Header return [b'<h1>Hello, web!</h1>']dictlist
wsgiref模塊:Python內置符合WSGI規範的服務器,調用application()
函數服務器
# hello.py
def application(environ, start_response): start_response('200 OK', [('Content-Type', 'text/html')]) return [b'<h1>Hello, web!</h1>'] # server.py # 從wsgiref模塊導入:
from wsgiref.simple_server import make_server # 導入咱們本身編寫的application函數:
from hello import application # 建立一個服務器,IP地址爲空,端口是8000,處理函數是application:
httpd = make_server('', 8000, application) print('Serving HTTP on port 8000...') # 開始監聽HTTP請求:
httpd.serve_forever()
命令行輸入python server.py
來啓動WSGI服務器 成功!數據結構
3.Web框架:併發
Web App就是寫一個WSGI的處理函數,針對每一個HTTP請求進行響應和URL(包含GET、POST、PUT、DELETE等請求)
from flask import Flask from flask import request app = Flask(__name__) @app.route('/', methods=['GET', 'POST']) def home(): return '<h1>Home</h1>' @app.route('/signin', methods=['GET']) def signin_form(): return '''<form action="/signin" method="post"> <p><input name="username"></p> <p><input name="password" type="password"></p> <p><button type="submit">Sign In</button></p> </form>''' @app.route('/signin', methods=['POST']) def signin(): # 須要從request對象讀取表單內容:
if request.form['username']=='admin' and request.form['password']=='password': return '<h3>Hello, admin!</h3>'
return '<h3>Bad username or password.</h3>'
if __name__ == '__main__': app.run()
4.MVC:Model-View-Controller,模型-視圖-控制器:
Model: Model是用來傳給View,View在替換變量的時候,取出相應的數據.例子中的Model就是dict
:{ 'name': 'Michael' }
View:包含變量{{ name }}
的模板,負責顯示邏輯,替換一些變量,最終輸出的就是用戶看到的HTML。
Controller:處理URL的函數,例中def home() ,負責業務邏輯