即時精選

flask 騷操作清單(進階黑魔法級)

更新於 發佈於 閱讀時間約 7 分鐘

🚀 騷操作清單(進階黑魔法級)

1. 自定義 route 裝飾器,讓路由語法更優雅

python
複製編輯# 超騷:讓 route 看起來像函式呼叫
def route(path, **options):
def decorator(f):
app.add_url_rule(path, f.__name__, f, **options)
return f
return decorator

@route('/sao')
def sao_page():
return '真的騷'

2. before_request 偷偷改變 request 路由

python
複製編輯@app.before_request
def redirect_secret():
if request.path == "/admin":
# 黑魔法:偷偷把訪問 /admin 導去 /notadmin
request.environ['PATH_INFO'] = "/notadmin"

@app.route('/notadmin')
def secret():
return "其實你進來的是 /notadmin"

3. Flask 的 g 對象偷渡資料(共享狀態)

python
複製編輯@app.before_request
def inject_data():
g.sao_value = "沒人知道的騷操作"

@app.route('/get_sao')
def get_sao():
return g.sao_value

👉 很多人沒用過 g,但這其實是全域請求上下文變數,可以傳遞資料但只活在這次 request。


4. 返回任意物件,Flask 幫你自動處理

python
複製編輯class SuperSao:
def __str__(self):
return "我是物件不是字串"

@app.route('/weird')
def weird():
return SuperSao() # Flask 會自動 str()

# 更進階:可以實作 __html__ 或 __call__ 來參與渲染

5. .py 當模板引擎使用(超極限)

python
複製編輯@app.route('/pytemplate')
def pytemplate():
code = """
name = '小明'
html = f"<h1>Hello {name}</h1>"
"""
loc = {}
exec(code, {}, loc)
return loc['html']

⚠️ 這是黑魔法 + 安全地獄,但真的超級騷。


6. 自定義 Response 類,做出奇怪格式回應

python
複製編輯from flask import Response

@app.route('/raw')
def raw():
return Response("這是原始字串喔", content_type='text/plain; charset=utf-8')

7. 用 Flask 做 TCP 或 Unix socket 通訊(跳脫 HTTP)

python
複製編輯# 使用 gunicorn 搭配 unix socket:
# gunicorn -b unix:/tmp/flask.sock app:app

🧠 用 Flask 配合 socket 寫 IPC 通訊,搞出非 Web 用法也很騷。


8. 在 URL 裡使用正則,定義奇怪的路由規則

python
複製編輯from werkzeug.routing import BaseConverter

class RegexConverter(BaseConverter):
def __init__(self, map, *items):
super().__init__(map)
self.regex = items[0]

app.url_map.converters['re'] = RegexConverter

@app.route('/id/<re("[0-9]{4}"):id>')
def regex_demo(id):
return f"你輸入了四位數 ID:{id}"

9. 讓 Flask 伺服器自己重啟(像病毒一樣)

python
複製編輯import os, sys

@app.route('/restart')
def restart():
os.execl(sys.executable, sys.executable, *sys.argv)

🛑 真的會重啟伺服器,用來做開發期自我熱重載(極限情況)。


10. 用裝飾器定義多語系自動回應

python
複製編輯from functools import wraps

def multilingual(func):
@wraps(func)
def wrapper(*args, **kwargs):
lang = request.args.get('lang', 'en')
if lang == 'zh':
return "你好,世界!"
return func(*args, **kwargs)
return wrapper

@app.route('/greet')
@multilingual
def greet():
return "Hello, World!"
留言
avatar-img
留言分享你的想法!
avatar-img
于正龍(Ricky)的沙龍
36會員
55內容數
人工智能工作經驗跟研究
你可能也想看
Thumbnail
大家好,我是一名眼科醫師,也是一位孩子的媽 身為眼科醫師的我,我知道視力發展對孩子來說有多關鍵。 每到開學季時,診間便充斥著許多憂心忡忡的家屬。近年來看診中,兒童提早近視、眼睛疲勞的案例明顯增加,除了3C使用過度,最常被忽略的,就是照明品質。 然而作為一位媽媽,孩子能在安全、舒適的環境
Thumbnail
大家好,我是一名眼科醫師,也是一位孩子的媽 身為眼科醫師的我,我知道視力發展對孩子來說有多關鍵。 每到開學季時,診間便充斥著許多憂心忡忡的家屬。近年來看診中,兒童提早近視、眼睛疲勞的案例明顯增加,除了3C使用過度,最常被忽略的,就是照明品質。 然而作為一位媽媽,孩子能在安全、舒適的環境
Thumbnail
我的「媽」呀! 母親節即將到來,vocus 邀請你寫下屬於你的「媽」故事——不管是紀錄爆笑的日常,或是一直想對她表達的感謝,又或者,是你這輩子最想聽她說出的一句話。 也歡迎你曬出合照,分享照片背後的點點滴滴 ♥️ 透過創作,將這份情感表達出來吧!🥹
Thumbnail
我的「媽」呀! 母親節即將到來,vocus 邀請你寫下屬於你的「媽」故事——不管是紀錄爆笑的日常,或是一直想對她表達的感謝,又或者,是你這輩子最想聽她說出的一句話。 也歡迎你曬出合照,分享照片背後的點點滴滴 ♥️ 透過創作,將這份情感表達出來吧!🥹
Thumbnail
打開 jupyter notebook 寫一段 python 程式,可以完成五花八門的工作,這是玩程式最簡便的方式,其中可以獲得很多快樂,在現今這種資訊發達的時代,幾乎沒有門檻,只要願意,人人可享用。 下一步,希望程式可以隨時待命聽我吩咐,不想每次都要開電腦,啟動開發環境,只為完成一個重複性高
Thumbnail
打開 jupyter notebook 寫一段 python 程式,可以完成五花八門的工作,這是玩程式最簡便的方式,其中可以獲得很多快樂,在現今這種資訊發達的時代,幾乎沒有門檻,只要願意,人人可享用。 下一步,希望程式可以隨時待命聽我吩咐,不想每次都要開電腦,啟動開發環境,只為完成一個重複性高
Thumbnail
你好,在下最近在學習開發web,學了html css js,也得出一些心得,由於網路上已有許多教學,所以我會著重在如何開發出to do List,以及解釋我寫的程式碼。相關的教學我會直接貼網址。如果我有什麼地方出錯,或者是可以寫得更好,歡迎在下方留言,討論。 首先先介紹我的開發環境: 我用了vs
Thumbnail
你好,在下最近在學習開發web,學了html css js,也得出一些心得,由於網路上已有許多教學,所以我會著重在如何開發出to do List,以及解釋我寫的程式碼。相關的教學我會直接貼網址。如果我有什麼地方出錯,或者是可以寫得更好,歡迎在下方留言,討論。 首先先介紹我的開發環境: 我用了vs
Thumbnail
Function的使用方式
Thumbnail
Function的使用方式
Thumbnail
這次要講的是 $route 及 $router 的區別,看似相似的兩個東西,其實應用時機也大不相同,以下以簡單的幾個例子舉例。
Thumbnail
這次要講的是 $route 及 $router 的區別,看似相似的兩個東西,其實應用時機也大不相同,以下以簡單的幾個例子舉例。
Thumbnail
2023 Vue直播班筆記 - 動態路由Props,接續之前的一般動態路由。分為 "寫死" 及 "彈性" 兩種。
Thumbnail
2023 Vue直播班筆記 - 動態路由Props,接續之前的一般動態路由。分為 "寫死" 及 "彈性" 兩種。
Thumbnail
Vue Router 動態路由,假設有一個賣場,裡面有 100 個商品,我們不可能針對它們創 100 對應的路由,因此我們需要一個動態路由,利用"路徑帶參數"的方式來撈取商品的資訊。
Thumbnail
Vue Router 動態路由,假設有一個賣場,裡面有 100 個商品,我們不可能針對它們創 100 對應的路由,因此我們需要一個動態路由,利用"路徑帶參數"的方式來撈取商品的資訊。
Thumbnail
今天來介紹python的函式 函式在python中是非常重要的一環,因為到了後期,程式會越來越複雜。 而函式可以想成是容易管理的小程式,當我們需要使用時,只需呼叫即可。
Thumbnail
今天來介紹python的函式 函式在python中是非常重要的一環,因為到了後期,程式會越來越複雜。 而函式可以想成是容易管理的小程式,當我們需要使用時,只需呼叫即可。
Thumbnail
當我們在撰寫一套系統的時候, 總是會提供一個介面讓使用者來觸發功能模組並回傳使用者所需的請求, 而傳統的安裝包模式總是太侷限, 需要個別主機獨立安裝, 相當繁瑣, 但隨著時代的演進與互聯網的崛起, 大部分的工作都可以藉由網頁端、裝置端來觸發, 而伺服端則是負責接收指令、運算與回傳結果, 雲端
Thumbnail
當我們在撰寫一套系統的時候, 總是會提供一個介面讓使用者來觸發功能模組並回傳使用者所需的請求, 而傳統的安裝包模式總是太侷限, 需要個別主機獨立安裝, 相當繁瑣, 但隨著時代的演進與互聯網的崛起, 大部分的工作都可以藉由網頁端、裝置端來觸發, 而伺服端則是負責接收指令、運算與回傳結果, 雲端
Thumbnail
當你想讓原本函式新增其他功能,又不想更動原本函式時,Python提供了一種強大而靈活的工具,那就是裝飾器。 但對於新手來說這個裝飾器,非常抽象難以理解,讓我們繼續往下看,慢慢的抽絲剝繭吧。 在 Python 中,使用「@」當做裝飾器使用的語法糖符號
Thumbnail
當你想讓原本函式新增其他功能,又不想更動原本函式時,Python提供了一種強大而靈活的工具,那就是裝飾器。 但對於新手來說這個裝飾器,非常抽象難以理解,讓我們繼續往下看,慢慢的抽絲剝繭吧。 在 Python 中,使用「@」當做裝飾器使用的語法糖符號
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News