• flask实战-个人博客-虚拟环境、项目结构 --


    个人博客

    博客是典型的CMS(Content Management system,内容管理系统),通常由两部分组成:一部分是博客前台,用来展示开放给所有用户的博客内容;另一部分是博客后台,这部分内容仅开放给博客管理员,用来对博客资源进行添加、修改和删除等操作。

    在这个项目,我们会学习更高级的项目组织方式。另外,我们还会学习使用扩展Flask-Login实现用户认证,这样就可以区分请求的来源客户端的身份,然后根据不同的身份返回不同的响应。

    安装和激活虚拟环境

    D:flaskpersonalBlog>pipenv install --dev

    这里用原作者的pipfile和pipfile.lock(放到项目根目录下),来安装虚拟环境的时候指定需要安装的第三方包及其版本

    pipfile.lock是根据pipfile和当前环境自动生成的JSON格式的依赖文件

    激活虚拟环境

    大型项目结构

    对于中小项目来说,使用程序包足以满足开发的需求。但如果项目更加复杂和庞大,我们就要学习一些进阶的项目组织技巧。在这一章,我们会学习用工厂函数和蓝本等技巧来进一步组织flask程序。

    当某一个模块包含太多代码时,常见的做法是将单一模块升级为包,然后把原模块的内容分离成多个模块。在personalBlog程序中,视图模块views.py被转换成personalPrints子包,views.py的内容按照类别分离成auth.py、blog.py和admin.py三个模块。另外,模板文件夹内新创建了三个子文件夹:author、blog、admin,分别存放各自分类的模板。

    personalBlog的程序包的主要文件结构如下所示:

    personalblog/

           blueprints/

    __init__.py

                  blog.py

                  auth.py

                  admin.py

           templates/

                  admin/

                  auth/

                  blog/

                  base.html

                  macros.html

    static/

    forms.py

    models.py

    emails.py  电子邮件

    utils.py    辅助函数

    fakes.py   虚拟数据

    extensions.py  扩展

    和messageBoard程序相比,personalBlog的程序包的根目录下新出现了4个脚本:

    utils.py用来存储各种辅助函数(即utilities的简写),比如之前介绍的用于重定向回上一个页面的redirect_back()以及验证URL安全性的url_safe()。

    fakes.py脚本存储虚拟数据生成函数。随着程序变大,我们需要生成大量不同种类的虚拟数据。比如,为了模拟一个虚拟博客,我们需要创建虚拟的博客信息、文章、分类和评论。使用函数可以更方便地组织这些虚拟数据生成代码,并且更易于重用。

    emails.py用来存储发送电子邮件的函数。为了更方便使用,除了通用的发信函数,我们还会创建特定的发信函数。比如,用户发送新评论提醒的函数。

    extensions.py用来存储扩展实例化等操作。

    和大多数脚本一样,这些脚本的命名没有固定高要求,你可以自由修改。比如,utils.py也可以命名为helpers.py,fakes.py也可以命名为dummies.py或是vdatas.py。

    一般来说,模块升级为包后的名称应该和模块名称相同。比如,如果表单类太多,我们会创建一个forms子包,然后在子包内创建auth.py、admin.py和blog.py模块组织代码。有一处你可能会感到奇怪,我们这里把views.py升级后的包命名为blueprints(蓝本)。事实上,你当然也可以命名为views,使用blueprints是因为我们将使用蓝本来组织视图。蓝本提供了更强大的组织能力,使我们能够在程序功能层面模块化程序,而不仅仅是代码组织层面。下面会详细介绍蓝本的概念。

  • 相关阅读:
    二维空间轨迹聚类
    Java 格式化输出
    Linux 小笔记
    Nginx ServerName 配置说明(转)
    LVS
    Nginx + tomcat 实现简单集群(基于反向代理方式)
    mysql 外键
    tomcat 日志输出
    tomcat https
    SpringMVC表单标签简介
  • 原文地址:https://www.cnblogs.com/xiaxiaoxu/p/10787408.html
Copyright © 2020-2023  润新知