日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

项目结构二三事

發布時間:2023/12/15 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 项目结构二三事 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

之前我們只用一個hello.py就能完成了flask創建一個簡單的web應用,首先讓我們看下之前文件組織形式。


簡單項目結構

在mysite文件下有3個頂層文件:migration負責數據庫遷移;static存放靜態文件如css,js,images等;templates存放網頁。hello.py負責啟動應用,data.sqlite存放數據。
看起來不錯,如果我希望為這個WEB增加多一些應用(app)呢,hello.py是不是會越來越大呢?會不會越來越難以管理呢?那么目前的結構就需要升級了,好讓hello.py瘦身。

新的項目結構

如果光看文件目錄的話,大致新建一個文件夾(如flasky),然后把原先的文件夾(如mysite)重命名為app,把hello.py重命名為__Init__.py.
當然這樣做之后,你用python app/__init__.py是無法啟動程序的
,因為 Python 不希望包內的模塊成為啟動文件。當然這又不是什么大不了的事情,與app同級路徑下新建一個manage.py,內部代碼如下:

from app import app app.run()

這樣時候再運行一下試試看?是不是一又可以用了。

但是說好的hello.py瘦身,你只是換個名字而已呀!

首先看下我們hello.py,內容太多,多圖預警

A B C D

大致可以把原先的hello.py分為以下幾個部分:所需庫導入;應用設置(app.config);程序擴展功能(xxxx=xxxx(app);數據庫模型(class xxx);視圖函數(index())和錯誤處理部分。

既然hello.py(__init__.py)其實看成多個功能模塊的組合,那么就把這些功能拆分為各個py文件,然后__init__.py導入各個模塊進行加載。
那么最新的結構如下

但是這個時候問題來了view.py的app是__init__.py中定義的,而__init__.py又要導入views才能返回頁面,就變成你中有我,我中 有你,并且運行還出現各種問題,但是對于我那么懶得人,需要一個新的辦法來解決。下篇介紹一個 Modular Applications with Blueprints藍圖先來解決這個煩人的問題。
所以__init__.py還是需要像之前一樣胖,下一樣進行修改。

總結

以上是生活随笔為你收集整理的项目结构二三事的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。