本文主要介紹如何開始乙個flask專案, 以及更具flask的豐富的拓展包, 來拆分專案, 讓乙個flask專案滿足基本的mvc架構, 下面就開始進入正文.
flask介紹:
開始專案
最簡單的乙個flask專案
fromflask
import
flask
defhello():
return
'hello'
if__name__ == '__main__':
main()
拆分基於專案的可拓展性和**的可閱讀性, 當**量較大時, 將所有的**寫在乙個檔案中是一件很可怕的事, 所以我們就要對其進行拆分, 主要還是參考 mvc模式進行, 將不同的功能放在其對應的模組中, 方便我們進行閱讀
建立 static 目錄,存放靜態檔案
建立 templates 目錄, 存放網頁模板
建立utils 目錄, 管理工具函式
fromviews定義路由和控制器flask_script
import
manager
from
utils.functions
import
if__name__ == '__main__':
manage.run()
from註冊藍圖flask
import
blueprint
user_buleprint = blueprint('user', __name__) # 'user'在重定向時使用
@user_blueprint.route('/') # 設定路由, 訪問的url
defindex():
return
render_template('index.html') # 返回渲染的模板頁面
# 帶引數返回
@user_blueprint.route('/')
defindex():
content = ''
return
render_template('index.html', content=content)
fromflask
import
flask
def
# 註冊藍圖, 設定url 字首, 相當於 django中的 namespace
return
設定靜態檔案目錄和模板目錄
defbase_dir = os.path.dirname(os.path.dirname(__file__))
static_dir = os.path.join(base_dir, 'static')
templates_dir = os.path.join(base_dir, 'templates')
static_folder=static_dir,
template_folder=templates_dir)
return
檢視函式
路由route規則
對同乙個模板,通過url中傳遞的引數型別不同來執行不同的檢視函式進行渲染
fromflask
import
render_template, request, blueprint
blue = blueprint('first', __name__)
@blue.route('/hello/')
defhello():
return
render_template('hello.html')
@blue.route('/hello//', methods=['post', "get"])
defhello_name(name):
ifrequest.method == 'get':
return
render_template('hello.html', name=name)
@blue.route('/hello//')
deffloat(float):
return
render_template('hello.html', float=float)
@blue.route('/hello//')
deffloat1(int):
return
render_template('hello.html', int=int)
@blue.route('/hello//')
defshow(path):
return
render_template('hello.html', path=path)
@blue.route('/hello//')
defuuid1(uuid):
return
render_template('hello.html', uuid=uuid)
methods 請求的方法
01計算機基本組成
cpu的內部整合了一些指令集,所有軟體的執行都需要cpu中的這些指令集來完成。根據指令集的不同,cpu被分為兩類 含有精簡指令集的cpu和含有複雜指令集的cpu。1.才有精簡指令集的cpu 精簡指令集 reduced instruction set computing,risc 採用精簡指令集的cp...
01資料結構的基本組成
線性結構作為最常用的資料結構,其特點是資料元素之間存在一對一的線性關係 線性結構有兩種不同的儲存結構,即順序儲存結構 如陣列 和鏈式儲存結構 如鍊表 順序儲存的線性 表稱為順序表,順序表中的儲存元素是連續的 指的是位址連續 鏈式儲存的線性表稱為鍊錶,鍊錶中的儲存元素不一定是連續的 指的是位址不一定連...
server基本組成
字串操作封裝,如 數字字串轉換 分隔符拆分 等常用操作 string handle 網路基礎資料結構,如 ip數字轉換 獲取網域名稱 物件池封裝 位儲存 bit map 序列化反序列化buffer octets,能夠支援寫時拷貝以及壓縮功能 阻塞佇列 block queue ring buffer ...