本文内容为慕课网Python全栈案例入门课程笔记,点击跳转课程页面
后端
Python web框架
- flask 简单轻量,灵活性大,创建于2010
- django 简单,比flask重,灵活性不如flask,创建于2006
- web.py 简单轻量,不再维护,创建于2008
web应用开发流程
- 产品分析: 用户需求,市场调研
- 技术选型: 前端,后端,数据库,业务框架(大数据,直播)
- 开发实现: 前后端开发,测试
- 生产上线: 部署,升级,峰值处理,成本优化,警报处理
Python基础
常用数据类型
- 字符串:
str,unicode
python3.x只有str - 列表:
list 可变列表, tuple 不可变列表, set 唯一列表
tuple内的元素是不变的 - 字典:
dict
key —> value映射,数据量大可用redis数据库
生成器
generator
1 | # 一次性产生10个元素的数组,占内存 |
迭代器
迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。
迭代器有两个基本的方法:iter()
和 next()
。
字符串str
,列表list
或元组tuple
对象都可用于创建迭代器:
1 | 1,2,3,4] list=[ |
切片
1 | 10) list = range( |
函数
- def 自定义函数
- lambda 匿名函数
[arg1 [,arg2,.....argn]]:expression``` 1
2
3
4```python
>>> sum = lambda arg1, arg2: arg1 + arg2
>>> print ("相加后的值为 : ", sum( 10, 20 ))
相加后的值为 : 30
- functools.partial 函数封装
- functools.wraps 装饰器
python中函数像变量一样,可作为参数传入另一个函数:
列表 / 字典推导式
- 列表推导式可以方便地由
a_list
生成新的列表b_list
- 字典推导式可以方便地由列表
a_list
和string.letters
生成新的字典b_dict
列表 / 字典解析式
- 使用
enumerate
可以在遍历时方便地获取列表下标index
- 使用
iteritems()
迭代器可以方便地遍历字典(key,value)
,快速又省内存Flask
最简单的web app
1
2
3
4
5
6
7
8
9
10
11from flask import Flask
app = Flask(__name__) ### 生成一个web app对象
def hello_world():
return 'Hello, World!'
if __name__ == '__main__':
app.run() ### run(host=None, port=None, debug=None, **options)
### 默认host: 127.0.0.1
### 默认port: 5000调试flask应用
- 设置app.run(debug=True)
- Python打印log,前端页面打印log(开发者模式)
- 本地开发可以使用断点调试
图书馆管理系统
项目文件
接口与逻辑分开设计
- views.py: url接口逻辑
- logic.py: 逻辑处理
- run.py: 应用发布
实践:DashBoard可视化
应用设计
项目文件结构:
python应用发布工具
CI / CD 持续集成,持续部署
- setup.py打包至pip公共仓库, 通过pip安装 / 卸载
- github hooks, travis 轻量,适合中小型项目
- jenkins 较重,适合中大型项目