Auth: 王海飞
Data:2018-04-20
Email:[email protected]
python学习之路,就是不断累积,不断学习的过程。该知识库讲解了Python Web框架内容,如Django、DjangoRestFramework、tornado、flask,redis,MySQL,MongoDB,docker,Vue等内容。如下展示知识结构目录图
[TOC]
-
-
虚拟环境搭建 - mkvirtualenv的使用 / virtualenv的使用 / python3中venv模块的使用 / Pycharm中虚拟环境的配置
-
项目初认知 - MVC模式 or MVT模式 / 创建Django工程目录 / 创建应用app
-
admin管理后台 - 超级用户的创建,模型注册,模型中数据展示(list_display)、搜索(search_field)、过滤(list_filter)等
-
-
-
模型概念 - ORM概念 / 模型的定义 / 字段的定义 / 字段参数的定义 / Meta元数据定义 / 表名定义 / 一对一关联 / 一对多关联 / 多对多关联
-
数据库配置 - pymysql驱动配置 / 数据迁移命令
-
比较运算符 - F对象 / Q对象
-
限制结果集 - contains / startswith / endswith / in / gt / gte / lt / lte / pk等
-
数据的查询 - all / filter / get / first / last / values等
-
数据的创建 - create() / save()
-
数据的更新 - update() / save()
-
数据的删除 - delete()
-
-
-
模板与静态配置 - 静态staticfiles_dirs的定义 / 静态资源的加载 / 资源反向解析url_for(有参和无参情况)
-
模板语法 - 模板中逻辑运算符(if、ifequal、forloop、for 、empty等) / 模板继承 / 模板注解 / 过滤器(管道符'|')
-
-
-
路由规则 - URL正则匹配 / 带参URL定义 / 不带参URL定义
-
响应 - redirect重定向(传参重定向 / 不传参重定向) / 模板渲染 / JSON数据响应 / 错误状态码(403、404、500)视图定义
-
请求 - 请求属于与方法(method、path、user、FILEWS、GET、POST等) / 匿名用户AnonymousUser
-
form表单验证 - 字段的定义 / 错误响应抛出 / 校验失败错误信息解析 / 校验clean方法 / 校验字段clean_fields方法
-
-
-
会话技术 - HTTP无状态协议 / 解决HTTP无状态协议 / Cookie产生场景 / Session产生场景
-
Cookie - 设置cookie / 删除cookie / 设置失效时长
-
Session - django_session表的定义 / 操作Session(增删改查) / 数据存储的时效
-
登陆注册功能 - 使用django中高耦合用户模块实现功能 / 使用Cookie + Token形式实现功能 / 登陆状态校验装饰器
-
-
-
中间件middleware - 工作原理与处理流程 / 拦截各阶段的请求 / 重构拦截各阶段请求 / 登陆状态校验中间件
-
form表单验证 - 字段的定义 / 错误响应抛出 / 校验失败错误信息解析 / 校验clean方法 / 校验字段clean_fields方法
-
文件上传 - Pillow安装 / 存储路径media地址定义 / 模板解析文件
-
-
-
分页 - Paginator工作原理 / 分页角码 / 上一页 / 下一页 / 总数据库 / 当前页等
-
权限模型定义 - User模型 / Group模型 / Permission模型 / 模型的ManyToManyFiled关联关系 / 权限中间表数据的增、删、清空
-
权限装饰器 - permission_reqired('应用app.权限名')
-
菜单控制 - 通过全局perms变量进行权限和菜单的控制
-
-
-
日志的配置与构成 - logging的四大组件(loggers 、handlers、filters、formatters) / 日志处理流程 / 日志中间件
-
celery
-
-
- 架构设计指导原则 - 接口定义规则 / REST风格 / 资源 / HTTP请求方式 / HTTP状态码
- DRF的应用 - djangorestframework安装 / django-filter安装 / 接口的定义 / 资源的CRUD
- 重构api响应结构 - 响应结构重构与定义
- 序列化serializer - 字段校验 / 错误信息自定义 / 验证方法validate / Serializer和ModelSerializer
- 分页配置
- 过滤类filter_class - 过滤字段 / 过滤方法method
-
[项目(后端渲染页面)]
-
[项目(前后分离渲染)]
- 前端vue框架
- 后端drf框架
-
[部署]
-
[拓展]
-
[第一天:入门基础]
- flask配置:微的定义,最小flask的web应用,虚拟环境搭建,安装flask - mvc概念,项目的符合MVC模式的拆分 - 项目运行管理:flask_script库使用,debug配置等 - 路由: 路由匹配规则 - 请求与响应:POST/GET请求传参,类字典的区别
-
[第二天:视图]
- session/cookie概念与用法: - 1) flask默认使用cookie存储session的数据。 - 2)引入flask_session扩展库,实现使用数据库存储session中数据。 - 应用案例1:分别使用两种存储session数据方式实现模拟登陆功能,以及装饰器的定义使用 - 应用案例2:使用flask-login扩展库实现用户登录注销功能
-
[第三天: 模板]
- 基础模板的定义,模板的继承,挖坑以及填坑。宏定义 - 模板中逻辑控制,过滤器,以及静态static的配置 - 应用案例1: flask-wtf的form表单的使用
-
[第四天: 数据库]
- 模型的定义,数据库的创建,模型之间的关联关系的定义以及CRUD操作 - 深入数据库的增删改查,查询数据filter和filter_by - 运算符--contains、startswith、__gt__等 - 筛选--offset、limit、get、first、paginate等 - 逻辑运算符--and_、or_、not_ - 模型之间的一对多的关联关系的定义
-
[第五天: 配置]
- 钩子函数: before_request, after_request, teardown_request - 应用上下文g对象 - 应用案例1: 钩子函数+g对象的使用,实现pymysql连接MySQL,并执行查询操作 - 应用案例1: 登录、注册、登录验证 - 应用案例2: 邮件发送 - 应用案例3: 文件上传
-
[第六天到第10天:项目]
-
[Flask和Django区别]
-
[第一天:爬虫]
- 概念:爬虫的由来/用来做什么 - 数据采集与分析:urllib/requests/bs4/mongodb/mysql/redis等 - 请求头-反爬虫:User-Agent,Accept,Accept-Language等 - 百度搜索:中文的编码解码 - ssl: ssl认证 - 应用案例1:urllib获取百度首页源代码/爬取智联某工作某地点的岗位信息 - 应用案例2:猫眼网站信息 - 作业1:爬取智联上某工作某地点的工作名称,公司等信息 - 作业2:爬取格言网(https://www.geyanw.com/)上的某一个模块的名言警句
-
[第二天:数据采集]
- 爬取工具:requests使用、bs4使用、urllib使用 - xpath语法、re正则表达式语法 - 应用案例1:获取豆瓣电影中动态加载电影资源信息 - 应用案例2:爬取知乎发现里面的提问的链接数,和链接地址
-
[第三天:多线程爬虫]
- 概念:线程、进程、同步、异步、并发、阻塞、非阻塞、并发、并行 - 进程、线程概念:多线程定义,守护线程,线程启动 - 线程锁 - 应用案例1:I/O密集型,计算密集型的单线程多线程对比
-
[第四天:协程/数据持久化]
- 迭代器、生成器的原理概念、斐波那契的实现 - 协程的概念,原理,生产者-消费者的实现 - 数据持久化,redis安装配置、缓存,mongodb安装配置、语法、缓存 - aiohttp:异步非阻塞的
-
[第五天:动态解析]
- 动态内容分析: 什么是动态内容,分析豆瓣的动态内容加载 - javascript逆向,selenium自动化测试框架 - 应用案例1: 使用selenium模拟登陆知乎 - 应用案例2: 使用selenium解析豆瓣电影信息
-
[第六天:验证]
- 模拟登陆:请求url分析,请求参数分析,模拟登陆状态保持 - form模拟登陆、验证码
-
[第七天--第十天]
- scrapy框架组件,处理流程,数据持久化 - scrapy项目环境搭建,创建项目命令,执行启动操作,各相关文件的处理逻辑 - scrapy_redis分布式爬虫原理 - 案例1:爬取起点小说网的小说分类,以及分类的url - 案例2:爬取豆瓣电影的信息,并使用mongodb持久化 - 案例3:爬取链家房源信息,并存储在csv文件 - 案例4:爬取微博大V的粉丝数,关注,博客等信息 - [scrapy框架的介绍以及案例1](spider/7.0spider_scrapy1.md) - [scrapy爬虫豆瓣信息](spider/7.1spider_scrapy2.md) - [scrapy爬取链家信息](spider/code/scrapy框架/lianjiaspider) - [scrapy爬取微博用户信息](spider/7.2spider_weibo_scrapy3.md)
-
[第一天: 入门基础]
- Tornado配置:虚拟环境搭建和tornado的安装、最小tornado的web应用、启动命令端口配置等 - 请求与响应: 请求参数、响应参数等 - 路由: 路由匹配规则
-
[第二天: 进阶]
-
tornado静态资源与模板: 模型的继承与模板语法、静态资源的加载static_url等
- 数据库: sqlalchemy的安装、模型定义、模型迁移等
- Tornado WebSocket网络协议: 保持浏览器与服务器之间的通信,并实现持久化连接,数据的双向传递等。
-
-
[第三天: 进阶2]
- tornado跨站请求伪造XSRF - 同步、异步、阻塞、非阻塞概念,以及同步Web服务 - ab压力测试 - tornado异步服务与异步生成器 - 应用案例1: 开发websocket聊天系统
-
[第四天: 人脸识别项目]
- tornado人脸识别,实现注册登录功能
-
[第五天: 数据监控后台项目]
- 数据监控项目: 前端页面采用echarts展示图像报表、后端采用tornado进行数据实时更新
- [第一天: jupyter入门]
- [第二天: pandas入门]
- [第三天: pandas进阶1]
- [第四天: pandas进阶2]
- [第五天: scipy]
- [第六天: matpoltlib]
- [第七天: KNN]
- [第八天: KNN]
- [第九天: 线性回归与逻辑斯蒂回归]
- [第十天: 决策树与贝叶斯]
- [第十一天: SVM与K均值聚类]
- [第十二天: 机器学习框架 TensorFlow1]
- [第十三天: 机器学习框架 TensorFlow2]
- [第十四天: 自然语言处理与社交网络处理]
- [第十五天: 综合案例信用卡反欺诈]
-
[第一天: 入门]
- Vue配置: node.js安装、cnpm的安装、vue的安装、vue项目的创建以及项目的启动 - Vue组件: 新增组件,修改启动页面的展示效果 - Vue内部指令: v-text、v-html、v-if、v-else、v-show、v-model、v-bind、v-on等 - Vue计算computed、监听watch - 应用案例1: 路由配置与点击链接渲染页面 - 应用案例2: 外部数据的引入,点击按钮修改页面数据
-
[第二天: 提升]
- Vue的全局操作、生命周期 - Vue中axios的使用 - Vue的Django进行前后交互中的跨域解决问题 - Vue部署