久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

Python的flask相關知識點有哪些

169次閱讀
沒有評論

共計 3506 個字符,預計需要花費 9 分鐘才能閱讀完成。

這篇文章主要講解了“Python 的 flask 相關知識點有哪些”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著丸趣 TV 小編的思路慢慢深入,一起來研究和學習“Python 的 flask 相關知識點有哪些”吧!

一、flask

a、Flask 是一個基于 Python 開發并且依賴 jinja2 模板和 Werkzeug WSGI 服務的一個微型框架,對于 Werkzeug 本質是 Socket 服務端,其用于接收 http 請求并對請求進行預處理,然后觸發 Flask 框架,開發人員基于 Flask 框架提供的功能對請求進行相應的處理,并返回給用戶,如果要返回給用戶復雜的內容時,需要借助 jinja2 模板來實現對模板的處理,即:將模板和數據進行渲染,將渲染后的字符串返回給用戶瀏覽器

b、“微”(micro) 并不表示你需要把整個 Web 應用塞進單個 Python 文件(雖然確實可以),也不意味著 Flask 在功能上有所欠缺。微框架中的“微”意味著 Flask 旨在保持核心簡單而易于擴展。Flask 不會替你做出太多決策——比如使用何種數據庫。而那些 Flask 所選擇的——比如使用何種模板引擎——則很容易替換。除此之外的一切都由可由你掌握。如此,Flask 可以與您珠聯璧合。

c、默認情況下,Flask 不包含數據庫抽象層、表單驗證,或是其它任何已有多種庫可以勝任的功能。然而,Flask 支持用擴展來給應用添加這些功能,如同是 Flask 本身實現的一樣。眾多的擴展提供了數據庫集成、表單驗證、上傳處理、各種各樣的開放認證技術等功能。Flask 也許是“微小”的,但它已準備好在需求繁雜的生產環境中投入使用。

d、視頻講解

二、安裝

 a、安裝:pip3 install flask

視頻講解

三、虛擬環境

 a、安裝: pip3 install virtualenv
 b、#  創建虛擬環境  virtualenv env1
 c、#  進入虛擬環境  Scripts/activate
 d、 #  退出虛擬環境  Scripts/deactivate

四、flask 框架

 a、簡介:輕量級框架
 Django:無 socket、中間件、路由系統、視圖(CBV,FBV)、  模板、ORM、cookie、Session、Admin、Form、緩存、信號、序列化....
 Flask:無 socket、中間件(擴展)、路由系統、視圖(CBV)、第三方模板(jinja2)、cookie、Session 弱爆了
 b、  什么是 wsgi? Web 服務網管接口,協議。 c、Flask 依賴一個實現了 WSGI 協議的模塊:werkzeug

五、flask

 a、 - 依賴于 wsgi 模塊:wsgiref,werkzeug,wsgi
 b、 - 實例化 Flask 對象
 - 靜態文件前綴  /xxx
 - 靜態文件目錄
 - 模板路徑
 c、  添加路由關系  
 - 將  Rule(url 和視圖函數) 添加到 Flask 對象的 url_map 字段中
 - 兩種添加路由的方式
 d、request
 -request.form
 -request.args

六、基本使用

from flask import Flask
#  實例化 Flask 對象
app = Flask(__name__)
#  生成路由關系,并把關系保存到某個地方,app 對象的  url_map 字段中
@app.route(/xxxx) # @decorator
def index():
 return  Index 
# def index():
# return  Index 
# app.add_url_rule(/xxx ,  n1 , index)
if __name__ ==  __main__ :
 #  啟動程序,監聽用戶請求
 #  一旦請求到來,執行  app.__call__方法
 #  封裝用戶請求
 #  進行路由匹配
 app.run()

a、保存 session 的數據存到了瀏覽器上,– 優點:減輕了服務端的壓力 – 缺點:不安全

b、路由系統:

@app.route(/post/path:path) @app.route(/login , methods=[ GET , POST]) @app.route(/user/ username) @app.route(/post/int:post_id) @app.route(/post/float:post_id)

七、路由系統 a、- 可傳入參數

 @app.route(/user/ username)
 @qpp.route(/post/ int:post_id ,methods=[ GET , POST],endpoint= fff )

b、反向生成 URL:url_for

c、擴展 Flask 的路由系統,讓它支持正則:

from flask import Flask,url_for
 app = Flask(__name__)
 #  定義轉換的類
 from werkzeug.routing import BaseConverter
 class RegexConverter(BaseConverter):
  
  自定義 URL 匹配正則表達式
  
 def __init__(self, map, regex):
 super(RegexConverter, self).__init__(map)
 self.regex = regex
 def to_python(self, value):
  
  路由匹配時,匹配成功后傳遞給視圖函數中參數的值
 :param value: 
 :return: 
  
 return int(value)
 def to_url(self, value):
  
  使用 url_for 反向生成 URL 時,傳遞的參數經過該方法處理,返回的值用于生成 URL 中的參數
 :param value: 
 :return: 
  
 val = super(RegexConverter, self).to_url(value)
 return val
 #  添加到 converts 中
 app.url_map.converters[xxx] = RegexConverter
 #  進行使用
 @app.route(/index/ xxx( \d+):nid ,endpoint= xx )
 def index(nid):
 url_for(xx ,nid=123)
 return  Index 
 if __name__ ==  __main__ :
 app.run()

八、請求響應

from flask import Flask
 from flask import request
 from flask import render_template
 from flask import redirect
 from flask import make_response
 app = Flask(__name__)

 @app.route(/login.html , methods=[ GET ,  POST])
 def login():
 #  請求相關信息
 # request.method
 # request.args
 # request.form
 # request.values
 # request.cookies
 # request.headers
 # request.path
 # request.full_path
 # request.script_root
 # request.url
 # request.base_url
 # request.url_root
 # request.host_url
 # request.host
 # request.files
 # obj = request.files[the_file_name]
 # obj.save(/var/www/uploads/  + secure_filename(f.filename))
 #  響應相關信息
 # return  字符串
 # return render_template(html 模板路徑 ,**{})
 # return redirect(/index.html)
 # response = make_response(render_template( index.html))
 # response 是 flask.wrappers.Response 類型
 # response.delete_cookie(key)
 # response.set_cookie(key ,  value)
 # response.headers[X-Something] =  A value
 # return response

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-08-25發表,共計3506字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 皋兰县| 南皮县| 来宾市| 本溪市| 广南县| 青川县| 武夷山市| 化州市| 通城县| 临漳县| 自贡市| 嵊州市| 千阳县| 凤城市| 宁南县| 丰台区| 孝昌县| 巴马| 诸暨市| 三亚市| 德令哈市| 通道| 鸡西市| 鄂托克前旗| 仪陇县| 雅江县| 正镶白旗| 昔阳县| 永济市| 富源县| 临潭县| 平顺县| 正镶白旗| 土默特右旗| 庐江县| 定州市| 夏邑县| 平度市| 巴彦淖尔市| 涞水县| 阳谷县|