基于Python的Web应用开发实践总结
2018-02-13 16:28
591 查看
基于Python的Web应用开发学习总结
项目地址
本次学习采用的是Flask框架。根据教程开发个人博客系统。博客界面如图所示。整个学习过程收获很多,以下是学习总结。
1、virtualenv
virtualenv是第三方工具,用于创建虚拟环境。可以为每个程序单独创建虚拟环境,每个虚拟环境互不影响,并且不影响全局的环境,也就是说在不同的虚拟环境里可以使用不同版本的python和插件等。使用虚拟环境的另一好处是,不需要管理员权限。以下是virtualenv的安装和使用:
1、检查是否安装了virtualenv
virtualenv --version
2、安装:在
https://bitbucket.org/pypa/setuptools的
setuptools中下载脚本
ez_setup.py,然后执行
python ez_setup.py easy_install virtualenv
3、创建:在需要使用虚拟环境的工程根目录下使用命令
virtualenv venv
venv为虚拟环境的名字,可根据个人需求更改。创建成功后,在当前文件夹下会出现一个子文件夹,名字就是上述命令中指定的参数,与虚拟环境相关的文件都保存在这个子文件夹中。
4、使用:虚拟环境的使用需要激活,命令如下:
venv\Scripts\activate
成功激活的话命令提示符会变为
(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的作用如下:
相当于class中的def init(self):函数,用来初始化模块。
把所在目录当作一个package处理
更多相关
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 服务。
相关文章推荐
- 《Flask Web开发——基于Python的Web应用开发实践》一字一句上机实践(下)
- 《Flask Web开发——基于Python的Web应用开发实践》一字一句上机实践(上)
- 《Flask Web开发——基于Python的Web应用开发实践》代码使用方法
- 基于python开发环境的Dockerfile总结
- 基于Python的Spark Streaming+Kafka编程实践及调优总结
- 3D GIS 应用开发 —— 基于 Mapbox GL 的实践总结
- Win10下Nao机器人的C++开发平台搭建环境配置流程,这学期综合实践的内容,做了一个星期,总算做出来了,写个总结吧哈哈
- 基于Metronic的Bootstrap开发框架经验总结(8)--框架功能总体界面介绍
- 基于Html5的移动应用开发经验总结:第一篇--架构选型篇(下)
- 推荐系统实践----基于用户的协同过滤算法(python代码实现书中案例)
- 20169205 2016-2017-2 《移动平台应用开发实践》第6周学习总结
- 对于 iOS 开发基于经验的一些总结与规划
- .Net平台开发的技术规范与实践精华总结
- spark----基于Python的Spark Streaming+Kafka编程实践
- 基于Metronic的Bootstrap开发框架经验总结(4)--Bootstrap图标的提取和利用
- 基于Eclipse的web开发实践之安装spring插件
- python,numpy等的安装方式以及Theano的安装、vim的python开发环境配置总结
- 基于python的互联网软件测试开发(自动化测试)-全集合
- SAP公开课笔记:基于HANA的软件开发 - 第二周总结
- 基于Redux架构的单页应用开发总结(一)(二)