当前位置: 首页 > news >正文

电商网站对比表格做网站怎么上传图片

电商网站对比表格,做网站怎么上传图片,湖南室内设计公司排名,杭州做网站的公司哪些比较好目录 1. 项目概述2. 项目结构3. 核心组件解析3.1 动态模块注册系统 (api/__init__.py)3.2 应用程序入口 (setup_demo.py) 4. 模块开发指南4.1 标准模块 (*_app.py)4.2 SDK模块 (sdk/*.py) 5. URL路径规则6. 如何使用6.1 启动应用6.2 添加新模块 7. 工作原理 1. 项目概述 这个项… 目录 1. 项目概述2. 项目结构3. 核心组件解析3.1 动态模块注册系统 (api/__init__.py)3.2 应用程序入口 (setup_demo.py) 4. 模块开发指南4.1 标准模块 (*_app.py)4.2 SDK模块 (sdk/*.py) 5. URL路径规则6. 如何使用6.1 启动应用6.2 添加新模块 7. 工作原理 1. 项目概述 这个项目是一个基于Flask的动态模块注册系统它允许你以一种模块化的方式组织API端点并且能够自动发现和注册这些模块。这种架构特别适合构建可扩展的Web API服务让你可以轻松地添加新功能而无需修改核心代码。 2. 项目结构 flask_path_test/ ├── .venv/ # Python虚拟环境目录 ├── api/ # API模块目录 │ ├── __init__.py # 核心功能动态模块注册系统 │ ├── product_app.py # 产品模块 │ ├── user_app.py # 用户模块 │ └── sdk/ # SDK模块目录 │ └── auth.py # 认证SDK模块 ├── .gitignore # Git忽略文件配置 ├── .python-version # Python版本配置文件 ├── pyproject.toml # 项目配置文件 ├── README.md # 项目说明文档 ├── setup_demo.py # 应用程序入口文件 └── uv.lock # 依赖锁定文件环境准备 uv init uv venv source .venv/bin/activate uv pip install flask3. 核心组件解析 3.1 动态模块注册系统 (api/__init__.py) 这个文件是整个系统的核心它实现了以下功能 自动发现模块搜索所有符合命名规则的模块文件动态加载模块使用Python的importlib机制动态加载模块注册Flask蓝图将每个模块注册为Flask蓝图并设置合适的URL前缀提供主页视图显示所有已注册的模块及其URL 关键函数 search_pages_path()搜索所有以_app.py结尾的文件和SDK目录下的Python文件register_page()将找到的模块文件注册为Flask蓝图auto_register_pages()自动注册所有找到的模块 代码 import sys from pathlib import Path from importlib.util import spec_from_file_location, module_from_spec from flask import Flask, Blueprint# 创建Flask应用 app Flask(__name__) API_VERSION v1 registered_urls []def search_pages_path(pages_dir):搜索页面路径app_path_list [path for path in pages_dir.glob(*_app.py) if not path.name.startswith(.)]# 搜索根目录下的sdkapi_sdk_path_list [path for path in pages_dir.glob(*sdk/*.py) if not path.name.startswith(.)]app_path_list.extend(api_sdk_path_list)return app_path_listdef register_page(page_path):注册页面模块为Flask蓝图path f{page_path}# 获取页面名称去掉_app后缀page_name page_path.stem.rstrip(_app)# 构建模块名称module_name ..join(page_path.parts[page_path.parts.index(api): -1] (page_name,))print(fmodule_name: {module_name})# 动态加载模块spec spec_from_file_location(module_name, page_path)page module_from_spec(spec)# 先设置app和manager再执行模块代码page.app apppage.manager Blueprint(page_name, module_name)sys.modules[module_name] pagespec.loader.exec_module(page)# 获取页面名称可能在模块中重新定义page_name getattr(page, page_name, page_name)# 确定URL前缀sdk_path \\sdk\\ if sys.platform.startswith(win) else /sdk/url_prefix (f/api/{API_VERSION} if sdk_path in path else f/{API_VERSION}/{page_name})print(furl_prefix: {url_prefix})# 注册蓝图app.register_blueprint(page.manager, url_prefixurl_prefix)return url_prefixdef auto_register_pages():自动注册所有页面模块global registered_urls# 创建api目录结构api_dir Path(api)api_dir.mkdir(exist_okTrue)# 搜索并注册所有页面page_paths search_pages_path(api_dir)result []print(page_paths)for page_path in page_paths:try:url_prefix register_page(page_path)result.append((page_path.name, url_prefix))print(f已注册模块: {page_path.name} - {url_prefix})except Exception as e:print(f注册模块 {page_path.name} 失败: {e})return resultapp.route(/) def index():主页显示所有注册的模块global registered_urlshtml h1Flask 动态模块注册演示/h1html h2已注册的模块:/h2ulfor module_name, url_prefix in registered_urls:html flistrong{module_name}/strong: a href{url_prefix}{url_prefix}/a/lihtml /ulhtml p访问上面的链接查看各个模块的功能/preturn html3.2 应用程序入口 (setup_demo.py) 这个文件是应用程序的入口点它 导入核心组件调用auto_register_pages()注册所有模块启动Flask应用服务器 from api import app, auto_register_pages, registered_urls# 如果需要可以在这里进行额外的配置 # app.config[SOME_CONFIG] some_value# 运行应用程序 if __name__ __main__:# 清空已注册的URL列表registered_urls.clear()# 手动注册所有模块result auto_register_pages()registered_urls.extend(result)print(f已注册的URL: {registered_urls})# 运行应用程序app.run(debugTrue, port5000)4. 模块开发指南 4.1 标准模块 (*_app.py) 标准模块文件需要遵循以下规则 文件名必须以_app.py结尾例如user_app.py、product_app.py模块中可以定义page_name变量来自定义URL路径可选使用manager.route()装饰器定义路由 示例product_app.py from flask import jsonify# 可以自定义页面名称 page_name productsmanager.route(/) def product_list():产品列表接口return jsonify({message: 产品模块,products: [{id: 1, name: 笔记本电脑, price: 5999},{id: 2, name: 智能手机, price: 2999}]})manager.route(/int:product_id) def product_detail(product_id):产品详情接口return jsonify({message: f产品详情 - ID: {product_id},product: {id: product_id, name: f产品{product_id}, price: 1000 product_id * 100}})示例user_app.py from flask import jsonifymanager.route(/) def user_list():用户列表接口return jsonify({message: 用户模块,users: [{id: 1, name: 张三, email: zhangsanexample.com},{id: 2, name: 李四, email: lisiexample.com}]})manager.route(/int:user_id) def user_detail(user_id):用户详情接口return jsonify({message: f用户详情 - ID: {user_id},user: {id: user_id, name: f用户{user_id}, email: fuser{user_id}example.com}})4.2 SDK模块 (sdk/*.py) SDK模块放置在api/sdk/目录下它们会被自动注册到/api/v1路径下。 示例sdk/auth.py from flask import jsonify, requestmanager.route(/, methods[GET]) def login():登录接口return jsonify({message: SDK认证模块 - 登录,token: fake_jwt_token_12345,expires_in: 3600})5. URL路径规则 系统会根据模块类型和名称自动生成URL路径 标准模块/v1/{page_name}/ 例如/v1/products/、/v1/user/ SDK模块/api/v1/ 例如/api/v1/auth模块 6. 如何使用 6.1 启动应用 uv run setup_demo.py应用将在http://localhost:5000启动访问主页可以看到所有已注册的模块列表。 6.2 添加新模块 在api/目录下创建新的*_app.py文件定义路由函数重启应用新模块会被自动发现和注册 示例创建新的order_app.py from flask import jsonify# 可以自定义页面名称 page_name ordersmanager.route(/) def order_list():订单列表接口return jsonify({message: 订单模块,orders: [{id: 1, product_id: 1, user_id: 1, status: 已付款},{id: 2, product_id: 2, user_id: 2, status: 待发货}]})7. 工作原理 setup_demo.py启动时调用auto_register_pages()auto_register_pages()搜索所有符合规则的模块文件对每个找到的文件调用register_page()进行注册register_page()动态加载模块并将其注册为Flask蓝图所有注册的URL保存在registered_urls列表中并在主页中显示 这个Flask动态模块注册系统提供了一种优雅的方式来组织和扩展你的API服务。通过遵循简单的命名约定和目录结构你可以轻松添加新功能而无需修改核心代码。这种模块化的设计特别适合大型项目让团队成员可以独立开发不同的功能模块。
http://www.dnsts.com.cn/news/193338.html

相关文章:

  • 网站建设排名软件wordpress做301重定向
  • 十大网站app软件网页版梦幻西游金卡竞猜
  • 网站建设优化服务效果电脑培训课程
  • 响应式手机网站模版郑州专业个人网站建设
  • 自己做的网站如何上百度0453信息网免费发布
  • 免费刷赞网站推广qq免费网络域名怎么注册
  • 建设银行网站登录江苏省建设执业资格中心网站
  • 做社交网站框架温州网站建设方案
  • 深圳建筑设计网站广州网站优化网站建设
  • 免费企业网站系统怎样宣传一个网站
  • 网站策划与建设阶段图像处理与网站开发
  • 江门营销型网站建设wordpress 多站 列表
  • 临沂网站建设选盛誉威海住房和城乡建设厅网站
  • 上市公司网站建设评价局域网搭建工具
  • android基础入门教程seo网站建设
  • 网站建设提供空间什么意思注册资金100万的公司要多少钱
  • 服务网站建设排行做网站的职业叫什么
  • 贴吧做网站做语文题的网站
  • 新的网站建设技术加快网站速度吗
  • 信息发布网站开发运用vs2010c 做网站
  • 安徽制作网站专业公司免费网站正能量小说
  • 营销型投资公司seo站长工具查询系统
  • 月子中心网站设计网站建设费用怎么记账
  • 2免费做网站做一个自己的app要多少钱
  • 高校网站建设工作总结国外家具设计网站
  • 企业大学网站建设计划天门建站
  • 手机网站图片轮播眉山建设局网站
  • 单页面网站建设教程知识付费网站搭建教程
  • 杭州建设职业学校网站开发软件需要学什么专业
  • 地推是什么意思百度seo优化排名软件