DAY6-Python學習筆記

前記:html

堅持寫學習筆記今天是第六天了,今天事情有點多想起來還沒寫趕快補起來,學習Python已經快一個星期了,大部分的知識點已經跟着廖雪峯老師的教程瞭解了一下,因爲自學能力不強還有不少知識點掌握不牢固,在把教程內容所有總結完了以後還須要一段時間去熟練掌握Python的開發技術,計劃是找個Diango項目上手,在這個過程當中牢固Python基礎知識和了解Diango基本框架,應該是跟着視頻教程作把。短時間的計劃就是這樣。可是這幾天看了看招聘廣告數據結構算法也是很看中的,大一時數據結構學的還行但是如今可能忘得差很少了,還有數據庫一直都是沒有學好,如今用到的數據庫不多也不知道本身到底幾斤幾兩,數據結構算法以及數據庫都是之後須要重點學習的方面了,加油!天天都要堅持寫隨筆!但願本身能堅持兩個月python

 

1.訪問數據庫:

SQLite:是一種嵌入式數據庫,它的數據庫就是一個文件。因爲SQLite自己是C寫的,SQLite的驅動內置在Python標準庫中:

MySQL:是爲服務器端設計的數據庫,能承受高併發訪問

 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(包含GETPOSTPUT、DELETE等請求)

Flask:

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()  ,負責業務邏輯

相關文章
相關標籤/搜索