框架
- Django
- flask
flask是一个轻量的web开发应用
示例开发一个小应用
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'hello world'
if __name__ == '__main__':
app.run()
将它保存为hello.py,然后用Python解释器来运行,确保你的应用文件名不是flask.py,因为这将与flask本身冲突
python hello.py
- web.py
- web2py
数据库
- mysql
- redis
- mongodb
数据处理
- padans
- numpy
- scipy
- sklearn
业务框架
- spark
- hadoop
- AWS
- docker
后端开发特点
技术变更快
- 编程语言
- 行业
- 项目
知识面广
- 前端,后端,前后端结合/分离
- 大数据,分布式
- 数据库,关系型/非关系型
- 操作系统,开源项目
业务综合
- 设计逻辑
- 实现
- 优化
- 部署(比如支付模块需要独立部署,支付是比较强调安全性,一致性的业务)
用python 做后端开发
要求
- 熟悉python语言
- 熟悉一款开发工具(我用sublime 和 pycharm)
- 熟悉 一到两种开发框架
- 数据前后端结合、分离技术
web开发流程
- 产品分析
- 用户需求
- 竞品分析
- 市场调研
- 技术选型
- 前端技术选型
- 后端技术选型
- 数据库
- 业务框架
- 大数据处理相关:Hadoop Spark相关
- 在线直播相关:流技术
- 开发实现
- 前后端开发,测试(坑多)
- 前后端部署(坑多)
- 前后端升级(坑多)
- 业务框架
- 生产上线
- 部署升级
- 峰值处理
- 成本优化
- 警报处理
flask
安装
$ sudo apt-get install python-virtualenv
$ mkdir myproject
$ cd myproject
$ virtualenv venv
New python executable in venv/bin/python
Installing distribute............done.
$ . venv/bin/activate
$ pip install Flask
添加动态路由
我们修改一下第一个示例
from flask import Flask
from flask import request
app = Flask(__name__)
@app.route('/')
def index():
user_agent = request.headers.get('User-Agent')
return '<h1>hello 镜心的小树屋</h1><br><p>你的浏览器是 %s </p>' %user_agent
if __name__ == '__main__':
app.run(debug=True)
注意在这个视图函数中我们如何把 request 当作全局变量使用。事实上,request 不可能是
全局变量。试想,在多线程服务器中,多个线程同时处理不同客户端发送的不同请求时,
每个线程看到的 request 对象必然不同。Falsk 使用上下文让特定的变量在一个线程中全局
可访问,与此同时却不会干扰其他线程。注意:
线程是可单独管理的最小指令集。进程经常使用多个活动线程,有时还会共
享内存或文件句柄等资源。多线程 Web 服务器会创建一个线程池,再从线
程池中选择一个线程用于处理接收到的请求。
实例: 用flask 写个博客
用户认证
大多数程序都要进行用户跟踪。用户连接程序时会进行身份认证,通过这一过程,让程序
知道自己的身份。程序知道用户是谁后,就能提供有针对性的体验。最常用的认证方法要求用户提供一个身份证明(用户的电子邮件或用户名)和一个密码。
我们将用到:
- Flask-Login: 管理已登录用户的用户会话
- Werkzeug:计算密码散列值并进行核对
- itsdangerous: 生成并核对加密安全令牌
除了认证相关的包之外,本章还用到如下常规用途的扩展。:
- Flask-Mail: 发送与认证相关的电子邮件
- Flask-Bootstrap: HTML模板
- Flask-WTF: Web 表单
生成requirements.txt文件: pip freeze > requirements.txt
安装requirements.txt依赖: pip install -r requirements.txt
Django
安装
$ sudo apt-get install python-virtualenv
$ mkdir myproject
$ cd myproject
$ virtualenv venv
New python executable in venv/bin/python
Installing distribute............done.
$ . venv/bin/activate
$ pip install Django
参考
Flask Web开发:基于Python的Web应用开发实战
Flask 开发文档
eastossifrage/pyblog
https://blog.miguelgrinberg.c...