框架

  • 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后端开发一览相关推荐

  1. Python学习笔记:Day1-2 开发环境搭建

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

  2. Python学习笔记-web开发

    说起web开发,我们先要说一下软件模式的转变. 最开始软件需要安装一个客户端,我们通过这个客户端去与去完成一些事情.这种模式(Client/Server模式)简称CS架构.随着互联网的兴起,与互联网相 ...

  3. 阿龙的学习笔记---C++后端开发学习路线梳理、阶段性总结

    1. 前言 不是科班出身,机械学院下的机器人专业,乱七八糟QT.ROS.双目.单片机都接触一些,但是到现在没做过太多软件开发的活儿,所以对于未来找实习找工作没什么底. 研一就快要过去了,因为疫情研一下 ...

  4. Python学习笔记:集成开发环境

    文章目录 一.下载PyCharm-2020.1.1 二.下载jetbrains-agent-latest.zip 三.安装PyCharm-2020.1.1 四.启动PyCharm并注册 五.配置Pyc ...

  5. Python学习笔记:Day14 完成Web App

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

  6. Python学习笔记:Day13 提升开发效率

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

  7. Python学习笔记:Day15 部署Web App

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

  8. Python学习笔记:Day5 编写web框架

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

  9. Python学习笔记:Day 16 编写移动App

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

最新文章

  1. json支持utf-8_发票查重百科支持系统对接
  2. 学python找什么工作-学Python能找到什么工作?这4种工作最热门!
  3. CSS3及JS媒体查询教程
  4. Java Web笔记之Struts2.1 +Hibernate3.3 +Spring3.0
  5. 用友无法打开计算机的ufnet服务,服务器安装完毕登陆正常,但是客户端安装完毕,重启以后,用友通无法正常启动,手工在服务里面启动,提示‘服务无法启动或依存的标记被删除’...
  6. qt动态添加窗口到垂直布局
  7. java中的纸牌游戏_Java中的宾果纸牌游戏
  8. Java float型数据判断是否相等
  9. SIP协议栈基础笔记
  10. 《CMOS集成电路后端设计与实战》——第2章 集成电路后端设计方法
  11. 轻松拿到国外主流设计风格的图片素材
  12. 安卓h5 微信 字体大小影响h5样式bug
  13. 如何在数据验证单元格区域禁用粘贴
  14. 冯诺依曼体系结构 —(收藏版)
  15. 部分经济学术语英文简写
  16. haas506 2.0开发教程-hota(仅支持2.2以上版本)
  17. 关于VMware虚拟机安装失败的解决办法,报错(29142)或者安装系统后无法启动
  18. wish新店快速出单的方法
  19. 治疗脚气、脚臭偏方!
  20. 用iconv 文件格式转换

热门文章

  1. 在java的实现栈的插入数据_Java实现数据结构栈stack和队列Queue
  2. redis windows版本的使用
  3. 『cURL』curl: (6) Could not resolve host无法解析主机地址
  4. 2019.03.28 bzoj3594: [Scoi2014]方伯伯的玉米田(二维bit优化dp)
  5. Exp7 网络欺诈防范 20155113徐步桥
  6. Uvalive 3523 - Knights of the Round Table (双连通分量+二分图)
  7. 红米 Note3 (kenzo)刷入 Lineage OS
  8. Objective-C学习—UIWebView的使用
  9. javascript 之clientHeight、scrollHeight、offsetHeight
  10. Ubuntu “载入软件包列表失败”