0%

Python Web开发入门

本文内容为慕课网Python全栈案例入门课程笔记,点击跳转课程页面

后端

Python web框架

  • flask 简单轻量,灵活性大,创建于2010
  • django 简单,比flask重,灵活性不如flask,创建于2006
  • web.py 简单轻量,不再维护,创建于2008

web应用开发流程

  1. 产品分析: 用户需求,市场调研
  2. 技术选型: 前端,后端,数据库,业务框架(大数据,直播)
  3. 开发实现: 前后端开发,测试
  4. 生产上线: 部署,升级,峰值处理,成本优化,警报处理

    Python基础

    常用数据类型

  • 字符串:str,unicode
    python3.x只有str
  • 列表:list 可变列表, tuple 不可变列表, set 唯一列表
    tuple内的元素是不变的
  • 字典:dict
    key —> value映射,数据量大可用redis数据库

生成器

generator

1
2
3
4
5
6
7
# 一次性产生10个元素的数组,占内存
for i in range(10)
print i

#xrange() 函数用法与 range 完全相同,所不同的是生成的不是一个数组,而是一个生成器,依次产生1,2,3...节省内存
for i in xrange(10) #
print i

迭代器

迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。
迭代器有两个基本的方法:iter()next()
字符串str,列表list或元组tuple对象都可用于创建迭代器:

1
2
3
4
5
6
7
8
9
>>> list=[1,2,3,4]
>>> it = iter(list) # 创建迭代器对象
>>> print (next(it)) # 输出迭代器的下一个元素
1
>>> print (next(it))
2
# 可以使用常规for语句进行遍历:
for x in it:
print (x, end=" ")

切片

1
2
3
4
5
6
7
>>> list = range(10)
>>>> list
[0,1,2,3,4,5,6,7,8,9]
>>> list[5 : 7] # 切片,第5-6个位置
[5, 6]
>>> list[-2 : ] # 倒数第二个位置到最后
[8, 9]

函数

  • 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_liststring.letters生成新的字典b_dict
    在这里插入图片描述

    列表 / 字典解析式

  • 使用enumerate可以在遍历时方便地获取列表下标index
  • 使用iteritems()迭代器可以方便地遍历字典(key,value),快速又省内存
    在这里插入图片描述

    Flask

    最简单的web app

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    from flask import Flask
    app = Flask(__name__) ### 生成一个web app对象

    @app.route('/') ### 注册一个url,当请求url+'/'这个网址时,执行hello_world函数
    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 持续集成,持续部署

  1. setup.py打包至pip公共仓库, 通过pip安装 / 卸载
  2. github hooks, travis 轻量,适合中小型项目
  3. jenkins 较重,适合中大型项目