flask设置static为任意目录

 

# Flask实例的源码:
class Flask(_PackageBoundObject):
    def __init__(self, import_name,  # 指定应用的名字和工程目录,默认为__name__
                static_path=None,  #  是静态文件存放的路径,会赋值给static_url_path参数
                static_url_path=None,  # 设置静态文件路由的前缀,默认为“/static”
                static_folder='static', # 静态文件的存放目录, 默认值为"static"
                template_folder='templates', # 模板文件的存放目录,默认值为"templates"
                instance_path=None, # 设置配置文件的路径,在instance_relative_config=True情况下生效
                instance_relative_config=False # 设置为True表示配置文件相对于实例路径而不是根路径
                root_path=None) # #  应用程序的根路径

在使用flask开发web服务端时,flask 默认的 前端路径再 templates下,静态文件再 static下

/app.py
/static
    /js
    /css
    /img
/templates
    /index.html

如果不移动或者修改 app默认路径,可以直接这样写:

app = Flask(__name__)

html引用时加上static
 <script src="/potree/page_template/cowa_3DModul.js"></script>

static_url_path: 前端访问资源文件的前缀目录。默认是/static,就是前端必须这样访问:<img src="/static/img/mylogo.jpg" /> 我们改成 '',就可以这样访问了:<img src="/img/mylogo.jpg" />。就达到前端从根目录访问的目的了

即:app = Flask(__name__,template_folder='',static_folder='')

如果不按照官方文件结构设计,即指定任意目录

/test
    /app.py
/test1
    /static
        /js
        /css
        /img
    /templates
        /index.html
#构建绝对路径
path = str((Path(__file__).parent).absolute())+"/test1/static"

设置template和static路径

app = Flask(__name__,template_folder='../test1/templates',static_folder=path)

此时实例化后参数为

static_folder  /..../test1/static
static_url_path   /static
template_folder  ../test1/templates

注意static_url_path ,这个参数值在html中要添加到引用目录前面

 

### 关于 FLASH-OCC 的代码实现 FLASH-OCC 是指一种基于 OpenCASCADE 技术 (OCC) 和 Flash 动画技术的集成开发模式。尽管当前提供的引用并未直接提及 FLASH-OCC 的具体实现细节,但可以结合 OCC 提供的基础功能以及可能的应用场景来推测其实现方式。 #### 使用 OpenCASCADE 进行内存管理 OpenCASCADE 提供了一套完整的内存管理系统,用于替代标准 C 函数 `malloc()` 和 `free()`。如果在 FLASH-OCC 中涉及动态分配对象,则应遵循以下方法[^3]: - 使用 `Standard::Allocate(size)` 替代 `malloc`。 - 使用 `Standard::Free(ptr)` 替代 `free`。 - 如果需要重新调整内存大小,可调用 `Standard::Reallocate(ptr, newSize)`。 这种机制能够确保程序运行期间更高效地管理和释放资源,尤其适用于复杂图形处理环境中的应用。 #### 结合 FFmpeg 实现多媒体支持 FFmpeg 可以为 FLASH-OCC 提供视频编码解码能力。通过构建 FFmpeg 静态库并利用其示例代码作为参考,开发者可以在自己的项目中引入媒体流处理逻辑[^1]。例如: ```cpp #include <libavcodec/avcodec.h> #include <libavformat/avformat.h> void init_ffmpeg() { av_register_all(); } int main(int argc, char *argv[]) { init_ffmpeg(); // Add your custom logic here. } ``` 上述片段展示了如何初始化 FFmpeg 库以便后续操作。对于 FLASH-OCC 而言,这一步骤可能是为了加载动画帧数据或者导出渲染后的图像序列至文件系统。 #### WebSocket 数据传输层设计 考虑到现代 Web 开发趋势,WebSocket 协议成为实时通信的理想选择之一。借助第三方开源工具 **websocket-sharp**[^4] ,我们可以轻松搭建服务器端与客户端之间的双向消息通道。下面是一个简单的服务启动脚本实例: ```csharp using System; using WebSocketSharp; class Program { static void Main(string[] args){ var wsServer = new WebSocketServer(8080); wsServer.AddWebSocketService<MyEcho>("/echo"); Console.WriteLine("Starting server..."); wsServer.Start(); while(true){ } } public class MyEcho : WebSocketBehavior{ protected override void OnMessage(MessageEventArgs e){ Send(e.Data.ToUpper()); } } } ``` 此代码定义了一个回显型的服务接口 `/echo` 。当接收到任意字符串输入时会将其转换成大写字母形式返回给发送方。实际部署过程中可以根据需求扩展更多业务逻辑以满足特定交互要求。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值