纯净、安全、绿色的下载网站

首页|软件分类|下载排行|最新软件|IT学院

当前位置:首页IT学院IT技术

打包FlaskAdmin程序static的路径 打包FlaskAdmin程序时关于static路径问题的解决

bitQ   2021-09-10 我要评论
想了解打包FlaskAdmin程序时关于static路径问题的解决的相关内容吗bitQ在本文为您仔细讲解打包FlaskAdmin程序static的路径的相关知识和一些Code实例欢迎阅读和指正我们先划重点:Flask打包,解决static路径问题下面大家一起来学习吧

1、pyinstaller的使用

网上资料多此处省略

2、打包时报错

1、可能有些包没有安装(跑跑程序不缺库就行)

2、有些包pyinstaller找不到?

打包时手动添加

--hidden-importMODULENAME,--hiddenimport MODULENAME

3、添加模板和静态文件

如果你使用的是flask-admin内部的模板建议将其拷贝到工程对应路径(若不打包后手动将文件拷贝过来也可以)

1、找到Flask-admin包下的templates、static文件(注意:template下有bootstrapX的多个文件夹我用的是bootstrap4字节将该目录下的admin放到工程的templates文件夹)

 

2、工程中放置的文件位置是这样的

3、打包时添加静态文件

用法:

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

windows以;分割linux以:分割

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

添加好后spec文件中是这样的注意我这里使用了config.py配置文件也需要作为静态文件打包进去

4、运行时找不到static中的样式文件

这个问题困扰了我一天主要原因没有搞清楚Flask的运行原理Flask-admin用到了Flask的blueprint的东西这个东西的作用就是将模块进行隔离比如admin可以有自己的路由自己的static、templates存放的位置具体没有深究反正对复杂的网站(功能模块多)比较有用

先上代码:

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="数据库管理", template_mode='bootstrap4', index_view=myView())

代码中将index_view重新封装了一下是因为我要设置static_folder这个路径为当前工程中static的路径测试发现相对路径不好使绝对路径好使

5、再打包运行功能正常


相关文章

猜您喜欢

  • C++ Qt之halcon读取像素项目 C++ Qt之halcon读取像素项目过程详解

    想了解C++ Qt之halcon读取像素项目过程详解的相关内容吗涂鸦c在本文为您仔细讲解C++ Qt之halcon读取像素项目的相关知识和一些Code实例欢迎阅读和指正我们先划重点:C++,qt之halcon,C++,qt之halcon读取像素下面大家一起来学习吧..
  • Golang 常量 手把手带你走进Go语言之常量解析

    想了解手把手带你走进Go语言之常量解析的相关内容吗我是小白呀在本文为您仔细讲解Golang 常量的相关知识和一些Code实例欢迎阅读和指正我们先划重点:Golang,常量,Go语言,常量下面大家一起来学习吧..

网友评论

Copyright 2020 www.sopisoft.net 【绿软下载站】 版权所有 软件发布

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 点此查看联系方式