Python学习笔记:Web后端开发一览
框架
- 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
安装
virtualenv 安装 python环境
$ 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 requestapp = Flask(__name__)@app.route('/')
def index():user_agent = request.headers.get('User-Agent')return '<h1>hello 镜心的小树屋</h1><br><p>你的浏览器是 %s </p>' %user_agentif __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
django 中文文档
参考
Flask Web开发:基于Python的Web应用开发实战
Flask 开发文档
eastossifrage/pyblog
https://blog.miguelgrinberg.c...
Python学习笔记:Web后端开发一览相关推荐
- Python学习笔记:Day1-2 开发环境搭建
前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...
- Python学习笔记-web开发
说起web开发,我们先要说一下软件模式的转变. 最开始软件需要安装一个客户端,我们通过这个客户端去与去完成一些事情.这种模式(Client/Server模式)简称CS架构.随着互联网的兴起,与互联网相 ...
- 阿龙的学习笔记---C++后端开发学习路线梳理、阶段性总结
1. 前言 不是科班出身,机械学院下的机器人专业,乱七八糟QT.ROS.双目.单片机都接触一些,但是到现在没做过太多软件开发的活儿,所以对于未来找实习找工作没什么底. 研一就快要过去了,因为疫情研一下 ...
- Python学习笔记:集成开发环境
文章目录 一.下载PyCharm-2020.1.1 二.下载jetbrains-agent-latest.zip 三.安装PyCharm-2020.1.1 四.启动PyCharm并注册 五.配置Pyc ...
- Python学习笔记:Day14 完成Web App
前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...
- Python学习笔记:Day13 提升开发效率
前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...
- Python学习笔记:Day15 部署Web App
前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...
- Python学习笔记:Day5 编写web框架
前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...
- Python学习笔记:Day 16 编写移动App
前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...
最新文章
- json支持utf-8_发票查重百科支持系统对接
- 学python找什么工作-学Python能找到什么工作?这4种工作最热门!
- CSS3及JS媒体查询教程
- Java Web笔记之Struts2.1 +Hibernate3.3 +Spring3.0
- 用友无法打开计算机的ufnet服务,服务器安装完毕登陆正常,但是客户端安装完毕,重启以后,用友通无法正常启动,手工在服务里面启动,提示‘服务无法启动或依存的标记被删除’...
- qt动态添加窗口到垂直布局
- java中的纸牌游戏_Java中的宾果纸牌游戏
- Java float型数据判断是否相等
- SIP协议栈基础笔记
- 《CMOS集成电路后端设计与实战》——第2章 集成电路后端设计方法
- 轻松拿到国外主流设计风格的图片素材
- 安卓h5 微信 字体大小影响h5样式bug
- 如何在数据验证单元格区域禁用粘贴
- 冯诺依曼体系结构 —(收藏版)
- 部分经济学术语英文简写
- haas506 2.0开发教程-hota(仅支持2.2以上版本)
- 关于VMware虚拟机安装失败的解决办法,报错(29142)或者安装系统后无法启动
- wish新店快速出单的方法
- 治疗脚气、脚臭偏方!
- 用iconv 文件格式转换
热门文章
- 在java的实现栈的插入数据_Java实现数据结构栈stack和队列Queue
- redis windows版本的使用
- 『cURL』curl: (6) Could not resolve host无法解析主机地址
- 2019.03.28 bzoj3594: [Scoi2014]方伯伯的玉米田(二维bit优化dp)
- Exp7 网络欺诈防范 20155113徐步桥
- Uvalive 3523 - Knights of the Round Table (双连通分量+二分图)
- 红米 Note3 (kenzo)刷入 Lineage OS
- Objective-C学习—UIWebView的使用
- javascript 之clientHeight、scrollHeight、offsetHeight
- Ubuntu “载入软件包列表失败”