最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

打包FlaskAdmin程序時關于static路徑問題的解決

 更新時間:2021年09月10日 17:34:00   作者:bitQ  
近期寫了個基于Flask-admin的數(shù)據(jù)庫管理程序,通過pyinstaller打包,給別人用,經(jīng)過幾次嘗試,打包的數(shù)據(jù)一直找不到static里面的樣式文件,查閱資料后,最總把問題搞定了。寫下處理流程,供后來人參考

1、pyinstaller的使用

網(wǎng)上資料多,此處省略

2、打包時報錯

1、可能有些包沒有安裝(跑跑程序不缺庫就行)

2、有些包pyinstaller找不到?

打包時手動添加

--hidden-importMODULENAME,--hiddenimport MODULENAME

3、添加模板和靜態(tài)文件

如果你使用的是flask-admin內(nèi)部的模板,建議將其拷貝到工程對應路徑(若不,打包后手動將文件拷貝過來也可以)

1、找到Flask-admin包下的templates、static文件(注意:template下有bootstrapX的多個文件夾,我用的是bootstrap4,字節(jié)將該目錄下的admin放到工程的templates文件夾)

 

2、工程中放置的文件位置是這樣的

3、打包時添加靜態(tài)文件

用法:

pyinstaller x.py --add-data="源地址;目標地址"。

windows以;分割,linux以:分割

--add-data="admin\static;admin\static" ...

添加好后,spec文件中是這樣的,注意,我這里使用了config.py配置文件,也需要作為靜態(tài)文件打包進去。

4、運行時找不到static中的樣式文件

這個問題困擾了我一天,主要原因沒有搞清楚Flask的運行原理,F(xiàn)lask-admin用到了Flask的blueprint的東西,這個東西的作用就是將模塊進行隔離,比如,admin可以有自己的路由,自己的static、templates存放的位置,具體沒有深究,反正對復雜的網(wǎng)站(功能模塊多)比較有用。

先上代碼:

class myView(admin.BaseView):
    play = PlayBack()
     def __init__(self, name=None, category=None,
                 endpoint=None, url=None,
                 template='admin/index.html',
                 menu_class_name=None,
                 menu_icon_type=None,
                 menu_icon_value=None):
        static_path = os.path.join(os.path.dirname(__file__), 'static')
        print(static_path)
        super(myView, self).__init__(name or admin.babel.lazy_gettext('Home'),
                                             category,
                                             endpoint or 'admin',
                                             '/admin' if url is None else url,
                                             static_path,
                                             menu_class_name=menu_class_name,
                                             menu_icon_type=menu_icon_type,
                                             menu_icon_value=menu_icon_value)
        self._template = template
    ... ...
 admin = admin.Admin(app, name="數(shù)據(jù)庫管理", template_mode='bootstrap4', index_view=myView())

代碼中,將index_view重新封裝了一下,是因為我要設置static_folder這個路徑為當前工程中static的路徑,測試發(fā)現(xiàn),相對路徑不好使,絕對路徑好使。

5、再打包,運行,功能正常。

以上就是打包FlaskAdmin程序時關于static路徑問題的解決的詳細內(nèi)容,更多關于打包FlaskAdmin程序static的路徑的資料請關注腳本之家其它相關文章!

相關文章

最新評論

遵义县| 曲麻莱县| 黄冈市| 巴林右旗| 白玉县| 徐汇区| 白山市| 陵川县| 临泉县| 蓬莱市| 日照市| 海宁市| 奉化市| 肃宁县| 同仁县| 南丹县| 石台县| 汉沽区| 盐源县| 会昌县| 盘锦市| 塔城市| 名山县| 界首市| 甘泉县| 平湖市| 嘉义县| 淅川县| 读书| 长沙县| 新乐市| 壤塘县| 大名县| 宜章县| 托克逊县| 咸丰县| 环江| 太仆寺旗| 苍溪县| 晋中市| 定远县|