Flask項(xiàng)目搭建配置項(xiàng)導(dǎo)入教程
引言
這一篇開(kāi)始介紹 Flask 系列筆記,這個(gè)系列筆記將和之前的 Django 筆記一樣會(huì)從 Flask 的官方文檔中提取一系列的知識(shí)點(diǎn),整理成系列筆記。
這是 Flask 系列筆記的第一篇,本篇筆記介紹的是 Flask 項(xiàng)目的搭建以及配置項(xiàng)的導(dǎo)入,我們用到的 Python 的版本還是 3.8,用到的 Flask 的版本是 2.3.2。
pip3 install flask==2.3.2
接下來(lái)我們這里用 Pycharm 創(chuàng)建一個(gè)項(xiàng)目,我們命名為 flask_blog,在其下文件夾為 app,其下再創(chuàng)建一個(gè) __init__.py 文件,當(dāng)前的文件結(jié)構(gòu)如下:
flask_blog
└── app
└── __init__.py以下是我們本篇筆記目錄:
- 運(yùn)行 Flask
- Flask 獲取配置
- 區(qū)分開(kāi)發(fā)環(huán)境和生產(chǎn)環(huán)境變量
1、運(yùn)行 Flask
在 __init__.py 中,我們寫入以下代碼:
from flask import Flask
def create_app():
app = Flask(__name__)
@app.route("/")
def hello():
return "<h1>hello world</h1>"
return app然后在 flask_blog/ 文件夾下執(zhí)行下面的命令,運(yùn)行 Flask:
flask run
看到輸出下面的輸出就說(shuō)明項(xiàng)目已經(jīng)啟動(dòng)起來(lái)了:
... * Running on http://127.0.0.1:5000/ Press CTRL+C to quit
然后訪問(wèn)服務(wù)器 5000 端口就可以看到返回內(nèi)容了。
在這里我們使用 @app.route() 指定路由,然后直接 return 一個(gè) html 文本,我們?cè)跒g覽器訪問(wèn)的時(shí)候就會(huì)自動(dòng)渲染。
指定端口
不指定的話,F(xiàn)lask 運(yùn)行自動(dòng)使用 5000 端口,如果要指定其他端口,使用 --port 參數(shù)指定。
flask run --port=9898
允許其他地址訪問(wèn)
如果希望其他服務(wù)器訪問(wèn)的話,加上 --host=0.0.0.0
debug模式
如果是在開(kāi)發(fā)階段,可以加上 --debug 參數(shù),會(huì)自動(dòng)檢測(cè)系統(tǒng)代碼變化然后重啟系統(tǒng)。
2、Flask 獲取配置
Flask 獲取配置信息有幾種方式,一種是從文件中獲取,一種是從定義好的 dict 里獲取。
從文件中獲取配置
從文件里獲取提供了幾種方式:
app.config.from_object("app.config")
app.config.from_pyfile("./config.py")我們?cè)?app/ 文件夾下創(chuàng)建了一個(gè) config.py 文件,其內(nèi)容如下:
ABC = "123"
在執(zhí)行完 from_object 或者 from_pyfile 操作之后,可以通過(guò)下面的操作獲取到這些配置信息:
app.config.get("ABC")從 dict 中獲取配置
除了從文件中獲取,我們還可以使用 from_mapping() 函數(shù),將需要寫入的配置放到 dict 里:
app.config.from_mapping({
"ABC": "123"
})注意:我們從文件中或者從 dict 中獲取的變量名稱都應(yīng)該是大寫的,否則系統(tǒng)不會(huì)讀入。
3、區(qū)分開(kāi)發(fā)環(huán)境和生產(chǎn)環(huán)境變量
在實(shí)際開(kāi)發(fā)中,我們可能需要區(qū)分開(kāi)發(fā)環(huán)境和生產(chǎn)環(huán)境,并且根據(jù)不同的環(huán)境讀取不同的環(huán)境變量,就這個(gè)問(wèn)題,這里提供一個(gè)方案
在 app/ 文件夾下,創(chuàng)建一個(gè) config/ 文件夾,在 config/ 文件夾下創(chuàng)建三個(gè)文件:config.py,production.py,development.py。
config
├── config.py
├── development.py
└── production.pyconfig.py 的內(nèi)容如下:
import os
if os.getenv("FLASK_ENV") == "production":
from .production import *
else:
from .development import *根據(jù)當(dāng)前環(huán)境設(shè)置的 FLASK_ENV 是否為 production 來(lái)判斷并選擇加載對(duì)應(yīng)的變量文件。
在 app/__init__.py 中還是正常加載 app.config.config 即可:
app.config.from_object("app.config.config")以上就是Flask項(xiàng)目搭建配置項(xiàng)導(dǎo)入教程的詳細(xì)內(nèi)容,更多關(guān)于Flask項(xiàng)目搭建配置項(xiàng)導(dǎo)入的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Python圖片轉(zhuǎn)gif方式(將靜態(tài)圖轉(zhuǎn)化為分塊加載的動(dòng)態(tài)圖)
這篇文章主要介紹了Python圖片轉(zhuǎn)gif方式(將靜態(tài)圖轉(zhuǎn)化為分塊加載的動(dòng)態(tài)圖),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-11-11
Python 轉(zhuǎn)移文件至云對(duì)象存儲(chǔ)的方法
對(duì)象存儲(chǔ)(Cloud Object Storage,COS)是一種存儲(chǔ)海量文件的分布式存儲(chǔ)服務(wù),具有高擴(kuò)展性、低成本、可靠安全等優(yōu)點(diǎn)。這篇文章主要介紹了Python 轉(zhuǎn)移文件至云對(duì)象存儲(chǔ),需要的朋友可以參考下2021-02-02
pytorch?tensor內(nèi)所有元素相乘實(shí)例
這篇文章主要介紹了pytorch?tensor內(nèi)所有元素相乘實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07
Python turtle實(shí)現(xiàn)貪吃蛇游戲
這篇文章主要為大家詳細(xì)介紹了Python turtle實(shí)現(xiàn)貪吃蛇游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-06-06
pycharm 使用心得(九)解決No Python interpreter selected的問(wèn)題
PyCharm 是由JetBrains打造的一款 Python IDE。具有智能代碼編輯器,能理解 Python 的特性并提供卓越的生產(chǎn)力推進(jìn)工具:自動(dòng)代碼格式化、代碼完成、重構(gòu)、自動(dòng)導(dǎo)入和一鍵代碼導(dǎo)航等。這些功能在先進(jìn)代碼分析程序的支持下,使 PyCharm 成為 Python 專業(yè)開(kāi)發(fā)人員和剛起步人員使用的有力工具。2014-06-06
使用Playwright和VSCode進(jìn)行自動(dòng)化測(cè)試的實(shí)現(xiàn)
本文將詳細(xì)介紹使用Playwright和VSCode進(jìn)行自動(dòng)化測(cè)試,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2026-01-01

