溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

flask的組成有哪些

發(fā)布時(shí)間:2020-09-24 14:26:04 來源:億速云 閱讀:196 作者:Leah 欄目:編程語言

這篇文章將為大家詳細(xì)講解有關(guān)flask的組成有哪些,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。

Flask介紹:

Flask是一種使用Python編寫的輕量級(jí)的Web框架, WSGI工具采用Werkzeug,模板引擎使用Jinja2, Flask使用的是BSD授權(quán),

Flask核心簡單, 可以自定義擴(kuò)展, 沒有固定的數(shù)據(jù)庫和模板等設(shè)置, 簡單輕便,

Flask也有web開發(fā)'微'框架之稱。

開始項(xiàng)目

下面是官網(wǎng)中的一個(gè)Flask項(xiàng)目, 只需要簡單的7行代碼, 我們就是可以讓一個(gè)Flask項(xiàng)目運(yùn)行起來

Flask由于框架體量小, 所有的拓展包都需要我們自己去安裝, 所以一個(gè)Flask項(xiàng)目會(huì)安裝很多的拓展包是很常見的

最簡單的一個(gè)Flask項(xiàng)目

 from flask import Flask
 
  app = Flask(__name__)
 
  @app.route('/')
  def hello():
      return 'hello'
 
  if __name__ == '__main__':
      main()

拆分

基于項(xiàng)目的可拓展性和代碼的可閱讀性, 當(dāng)代碼量較大時(shí), 將所有的代碼寫在一個(gè)文件中是一件很可怕的事, 所以我們就要對(duì)其進(jìn)行拆分, 主要還是參考 MVC模式進(jìn)行, 將不同的功能放在其對(duì)應(yīng)的模塊中, 方便我們進(jìn)行閱讀

將主要的執(zhí)行內(nèi)容寫在執(zhí)行文件manage.py中, 引入 Manage 進(jìn)行管理app

創(chuàng)建app的文件目錄, 將views 和 models 寫入其中進(jìn)行管理

創(chuàng)建 static 目錄,存放靜態(tài)文件

創(chuàng)建 templates 目錄, 存放網(wǎng)頁模板

創(chuàng)建utils 目錄, 管理工具函數(shù)

Manger管理app

 from flask_script import Manager
 
  from utils.functions import create_app
 
  app = create_app()
  manage = Manager(app=app)
 
  if __name__ == '__main__':
      manage.run()

views定義路由和控制器

需要藍(lán)圖

blueprint

 from flask import Blueprint
 
  user_buleprint = Blueprint('user', __name__) # 'user'在重定向時(shí)使用
 
  @user_blueprint.route('/')  # 設(shè)置路由, 訪問的url
  def index():
      return render_template('index.html')  # 返回渲染的模板頁面
 
  # 帶參數(shù)返回
  @user_blueprint.route('/')
  def index():
      content = ''
      return render_template('index.html', content=content)

注冊藍(lán)圖

utils.functions.py

 from flask import Flask
  def create_app():
      app = Flask(__name__)
# 注冊藍(lán)圖, 設(shè)置url 前綴, 相當(dāng)于 django中的 namespace
      app.register_blueprint(blueprint=user_buleprint, url_prefix='/user')
      return app

視圖函數(shù)

路由

@app.route('/')

客戶端發(fā)送請(qǐng)求給服務(wù)器(瀏覽器到服務(wù)器), 進(jìn)而請(qǐng)求傳遞到Flask的應(yīng)用實(shí)例,應(yīng)用實(shí)例需要知道對(duì)于各個(gè)URL請(qǐng)求需要執(zhí)行哪部分代碼, 所以它給Python函數(shù)建立了一個(gè)URLs映射, 這種在URL和函數(shù)之間建立聯(lián)系的操作稱之為路由

route規(guī)則

在@app.route('/<int:name>')

string 字符串  默認(rèn)

int 整形

float 浮點(diǎn)型

path 路徑

uuid uuid字符串

any 任何,無限制。

關(guān)于flask的組成有哪些就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI