框架分析

此部分文档主要介绍顶点云 Web 服务器的框架结构。

顶点云服务器源码文件结构如下:

- web
  - app
    - auth
    - main
    - static
      - thumbnail
    - templates
    - ...
    - models.py
  - settings
  - config.py
  - manage.py
  - work.db

以上几个目录对应的功能如下:

  • auth :对应 Auth 蓝本 ,用于处理用户注册、登录等需要特权的请求。
  • main :对应 Main 蓝本 ,用于处理用户大部分不需要特权的请求,以及主要的功能实现。
  • static :对应 Flask 框架中存储静态文件的目录,此目录存储 Web 服务器使用的图片、js、css等文件。
  • static/thumbnail :此目录存储用户自定义的头像文件。
  • template :此目录存储 Web 服务器渲染网页使用的模板。
  • models.py :对应 模型介绍 中介绍的各类模型。
  • config.py :对应 Web 服务器全局配置 中的配置文件。
  • manage.py :管理服务器的配置文件,包含了一系列自定义命令,你可以查看 管理器 以了解更多。

各模块之间关系如下图所示:

uml

管理器

manage.py 管理着顶点云 Web 服务器。它提供了很多操作服务器的基础命令,如启动、初始化、测试等,你可以通过 python manage.py <command> 来运行不同命令。默认的顶点云 Web 服务器管理器提供的命令有:

  • shell :启动交互式 Python 命令行并自动导入顶点云 Web 服务器的各类模块
  • db :数据库迁移类命令,如 db migratedb init
  • test :启动 web/tests 目录下的单元测试
  • init :初始化数据库,随机生成用户和数据
  • simple_init :简单初始化数据库,只加入五个特定的用户

工厂方法

web/app/__init__.py 中包含了 Web 服务器的工厂方法,当你通过 manage.py 执行命令时, manage.py 会调用工厂方法生成一个应用实例。

工厂方法名为 create_app ,正如我们在 扩展自定义功能 中介绍的那样,修改 manage.py 的第 13 行实际是修改了工厂方法的参数。这个工厂方法根据传入的参数从 Web 服务器全局配置 中寻找对应表项(配置类),并使用该配置类生成服务器实例。

接下来请您阅读 蓝本介绍