Django学习知识库
Auth: 王海飞
Data:2018-04-20
Email:[email protected]
python学习之路,就是不断累积,不断学习的过程。该知识库讲解了Python Web框架内容,如Django、DjangoRestFramework、tornado、flask,redis,MySQL,MongoDB,docker,Vue等内容。
Python基础
git知识库
docker知识库
mysql数据库知识库
redis知识库
mongodb知识库
celery知识库
PEP 8风格指南
Django知识库
-
- 虚拟环境搭建 - 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
-
[部署]
-
[拓展]
Flask知识库
- Flask初认知
- Flask框架 - 微型框架的定义 / Django、Flask、Sanic、Tornado等框架的对比
- Flask最小应用项目 - 最简Web项目定义 / 启动命令参数 / Flask_Script的使用
- 路由规则 - 转化器的定义(int、string、uuid、float、path等)
- 请求与响应:POST/GET请求传参,类字典的区别
- 蓝图Flask_Blueprint - 路由模块化管理 / 路由前缀url_prefix / 重定向url_for方向解析
- 视图
- cookie概念与用法 - cookie的设置与删除 / cookie + token实现状态保持
- session概念与用法 - flask默认使用cookie存储session的数据 / 引入flask_session扩展库,实现使用数据库存储session中数据
- 装饰器 - 登陆状态校验装饰器
- 案例1 - 分别使用两种存储session数据方式实现模拟登陆功能,以及装饰器的定义使用
- 案例2 - 使用flask-login扩展库实现用户登录注销功能
- 模板
- 模板概念 - 基础模板的定义 / 模板的继承 / 挖坑以及填坑 / 静态文件static的配置
- 模板中逻辑控制 - for / if / loop / 过滤器 / 宏定义macro
- 表单 - Flask-WTF的form表单定义 / 字段校验DareRequired / 长度校验Length / 字段相等EqualTo / 方法validate_fields定义 / 异常抛出ValidateError / 错误信息解析errors
- 数据库
- 模型 - 模型字段定义 / 模型字段约束 / 模型表明tablename定义 / 模型一对一关联 / 模型一对多关联
- ORM操作(增 / 改) - 事务add() / add_all() / commit()
- ORM操作(删) - 事务delete()
- ORM操作(查) - filter / filter_by / contains、startswith 、like 、endswith、gt、ge、lt、le、offset、limit、get、first、paginate、and__、or_、not_、in_、notin_
- 拓展
- 钩子函数 - before_request, after_request, teardown_request
- 应用上下文g对象
- 应用案例1: 钩子函数+g对象的使用,实现pymysql连接MySQL,并执行查询操作
- 应用案例1: 登录、注册、登录验证
- 应用案例2: 邮件发送
- 应用案例3: 文件上传
- 部署
- [Flask和Django区别]
爬虫
-
-
爬虫概念 - 爬虫原理 / 请求(请求头、cookie、headers等) / 响应(响应状态码、响应内容、响应headers等)
-
数据采集库 - urllib / requests / Selenium/ / Scrapy
-
数据分析 - 正则表达式 / lxml / BeautifulSoup4 / xpath
-
案例1 - 使用urllib库爬取智联上某工作某地点的工作名称,公司等信息
-
案例2 - 使用requests库爬取猫眼电影的信息
-
案例3 - 获取豆瓣电影中动态加载电影资源信息
-
案例4- 爬取知乎发现里面的提问的链接数,和链接地址
-
-
- 自动化工具Selenium - 动态网站分析 / Selenium中标准选择器、CSS选择器、标签选择器语法
- 案例1 - 知乎和豆瓣电影的动态信息的爬取
- 案例2 - 验证码破解(B站极验验证码的破解、图片验证码的破解)
- 案例3 - 爱奇艺VIP视频爬取
-
- Scrapy框架 - Scrapy框架图解 / 下载中间件 / Spider中间件 / Spiders爬虫 / Item实体 / Pipelines项目管道
- 代理 - IP代理切换proxy / User_Agent用户代理切换 / Cookie代理池切换
- 分布式Scrapy-redis - 分布式概念 / 爬取队列维护 / 主机master / 从机slave
-
- 同步、异步、协程、多线程、单线程、多进程
- 异步aiohttp
Tornado知识库
-
- Tornado配置 - 虚拟环境搭建 / tornado的安装 / 最小tornado的web应用 / 启动命令端口配置
- 请求与响应 - HTTP行为方法 / 切入点函数 / 请求参数(get_argument) / 响应参数
- 路由 - 路由匹配规则
-
- tornado静态资源与模板 - 模型的继承与模板语法 / 静态资源的加载static_url
- 数据库 - sqlalchemy的安装 / 模型定义 / 模型迁移
- Tornado WebSocket网络协议: - 保持浏览器与服务器之间的通信,并实现持久化连接,数据的双向传递等
-
- tornado跨站请求伪造XSRF - 概念 / 防范
- 同步与异步 - 同步 / 异步 / 阻塞 / 非阻塞 / 协程 / 异步生成器 / ab压力测试
- 队列
- 应用案例1: 开发websocket聊天系统
-
实战项目 - 案例1: WebSocket聊天室
机器学习
- [第一天: jupyter入门]
- [第二天: pandas入门]
- [第三天: pandas进阶1]
- [第四天: pandas进阶2]
- [第五天: scipy]
- [第六天: matpoltlib]
- [第七天: KNN]
- [第八天: KNN]
- [第九天: 线性回归与逻辑斯蒂回归]
- [第十天: 决策树与贝叶斯]
- [第十一天: SVM与K均值聚类]
- [第十二天: 机器学习框架 TensorFlow1]
- [第十三天: 机器学习框架 TensorFlow2]
- [第十四天: 自然语言处理与社交网络处理]
- [第十五天: 综合案例信用卡反欺诈]
VUE框架
- 入门
- Vue配置 - node.js安装 / cnpm的安装 / vue的安装 / vue项目的创建 / 项目启动run / 项目build
- Vue组件 - 自定义组件 / 加载组件 / 配置链接地址
- Vue内部指令 - v-text / v-html / v-if / v-else / v-show / v-model / v-bind / v-on等
- Vue计算属性 - computed / 监听watch
- 提升
- Vue的全局操作 - 生命周期 / axios请求 / 跨域配置
- Vue部署 - 项目build相关配置 / Nginx配置 / 反向代理配置
K8s
- k8s的概念、安装 / minikube的使用