zoukankan      html  css  js  c++  java
  • 基于Python的Web应用开发实践总结

    基于Python的Web应用开发学习总结

    项目地址

      本次学习采用的是Flask框架。根据教程开发个人博客系统。博客界面如图所示。




    整个学习过程收获很多,以下是学习总结。

    1、virtualenv

    virtualenv是第三方工具,用于创建虚拟环境。可以为每个程序单独创建虚拟环境,每个虚拟环境互不影响,并且不影响全局的环境,也就是说在不同的虚拟环境里可以使用不同版本的python和插件等。使用虚拟环境的另一好处是,不需要管理员权限。
    以下是virtualenv的安装和使用:

    1、检查是否安装了virtualenv virtualenv --version

    2、安装:在https://bitbucket.org/pypa/setuptoolssetuptools 中下载脚本ez_setup.py,然后执行

    python ez_setup.py
    easy_install virtualenv
    
    

    3、创建:在需要使用虚拟环境的工程根目录下使用命令

    virtualenv venv 
    
    

    venv为虚拟环境的名字,可根据个人需求更改。创建成功后,在当前文件夹下会出现一个子文件夹,名字就是上述命令中指定的参数,与虚拟环境相关的文件都保存在这个子文件夹中。

    4、使用:虚拟环境的使用需要激活,命令如下:

    venvScriptsactivate
    
    

    成功激活的话命令提示符会变为(venv) $ ,如果需要退出虚拟环境,可使用命令:

    deactivate
    
    

    2、项目结构

    基本项目结构如图所示:

    1、 Flask程序一般都保存在名为app的包中:

    • api_0_1存放API蓝本的包
    • auth和main是存放主程序蓝本和认证蓝本的包
    • static存放静态文件,例如css文件等
    • templates用于存放网页模板

    2、migrations 文件夹包含数据库迁移脚本;
    3、requirements里的文件列出了不同开发环境下需要的所有依赖包,便于在其他电脑中重新生成相同的虚拟环境;
    4、 config.py 存储配置;
    5、manage.py 用于启动程序以及其他的程序任务。

       将文件夹变为Python模块只需要在该文件夹下新增__init__.py即可。注:_init_.py的作用如下:

    1. 相当于class中的def init(self):函数,用来初始化模块。
    2. 把所在目录当作一个package处理
    3. 更多相关

    3、蓝本

       Flask使用蓝本技术将项目模块化。蓝本和程序类似,也可以定义路由。不同的是,在蓝本中定义的路由处于休眠状态, 直到蓝本注册到程序上后,路由才真正成为程序的一部分。使用位于全局作用域中的蓝本时,定义路由的方法几乎和单脚本程序一样。
      蓝本的使用分为两步:创建和注册。

    • 创建:通过实例化一个Blueprint 类对象可以创建蓝本:
     #app/main__init__.py
     from flask import Blueprint    #导入蓝本模块
     main = Blueprint('main', __name__)     # 第一个参数为蓝本的名字,第二个参数为蓝本所在的包或模块
     from . import views, errors  #避免循环导入依赖,在末尾导入错误处理程序和路由程序
    
    • 注册:调用程序的自带的register_blueprint将蓝本注册到程序上
    #app_init_.py
    from .main import main as main_blueprint
    
    app.register_blueprint(main_blueprint)
    

    4、Flask扩展

      Flask扩展可以理解为插件,小到可以称为“微框架”,但是,小并不意味着功能少。Flask的核心包含了基本服务,其他功能则可通过扩展来实现。
      扩展的使用也分为两步:安装和导入。一般使用命令pip install 扩展名来安装扩展,安装完成后,直接在程序中用from ... import ...语句导入使用即可(专为 Flask 开发的扩展都暴漏在 flask.ext 命名空间下)。以下示例代码为安装使用flask-script扩展:
      首先,在命令行中安装flask-script:

     (venv) $ pip install flask-script  
    

      在程序中使用:

    
    from flask.ext.script import Manager  #导入
    manager = Manager(app)  
    # ...  中间无关代码省略
    if __name__ == '__main__':
    manager.run()
    
    

      本项目在开发过程中,使用到了许多扩展,例如Flask-Login、Flask-Bootstrap、Flask-WTF等等。

    5、实现符合 REST 架构的 API

      Flask 是开发 REST 架构 Web 服务的理想框架,因为 Flask 天生轻量。
      REST API 相关的路由是一个自成一体的程序子集,所以为了更好地组织代码,最好把这些路由放到独立的蓝本中。使用 Flask 创建 REST Web 服务可以应用在微信小程序后台服务,为微信小程序提供资源。如果时间允许,打算再在开发一个微信小程序后台系统后单独再 介绍REST 架构 Web 服务。

  • 相关阅读:
    poj 2942 Knights of the Round Table(无向图的双连通分量+二分图判定)
    Java序列化的几种方式
    Android 四大组件学习之Service六
    cursor:pointer的意思
    JSP中<base href="<%=basePath%>">的作用
    一篇让Java程序猿随时可以翻看的Oracle总结
    史上最全的javascript知识点总结,浅显易懂。
    史上最全的HTML、CSS知识点总结,浅显易懂。
    css学习归纳总结
    Web前端开发Chrome插件
  • 原文地址:https://www.cnblogs.com/liminghuang/p/8439548.html
Copyright © 2011-2022 走看看