写点什么

软件测试 | 后端 web 开发框架

  • 2023-03-03
    北京
  • 本文字数:1187 字

    阅读完需:约 4 分钟

后端 web 开发框架的技术如下:

  • 页面渲染:客户端渲染页面(SPA)、服务端渲染页面(模板技术)

  • 数据库连接技术:数据库连接池、数据访问

  • 服务管理:接口、路由、权限

  • 异步任务调度:异步、同步、回调

最早服务端会对页面进行渲染,随着发展,前端渲染与服务端分离开,前端和后端通过接口进行对接。 目录后端框架分为二大类:

迷你型框架

  • Python:Flask

  • Java:Spark Java

大而全的框架:集成 web 开发所有功能

  • Python:Django

  • Java:Spring 全家桶

但是用 Django 开发比较少,之前只有中国互联网的知乎和豆瓣,小项目开发使用 Flask 即可。

Flask

Flask 是一个使用 Python 编写的轻量级 Web 应用程序框架。

官网:https://flask.palletsprojects.com/en/2.0.x/

安装

使用 pip 进行安装

pip install Flask
复制代码

简单使用

安装好后,输入以下代码开启 flask 服务:

from flask import Flask# 指定 Flask 名字为文件名app = Flask(__name__)@app.route("/")def hello_world(): return "<p>Hello, World!</p>”
复制代码

可以在命令行运行代码,下面命令的 hello 是文件名:

Windows 使用 CMD 运行:

> set FLASK_APP=hello> flask run* Running on http://127.0.0.1:5000/
复制代码

MAC 或 Linux 使用 BASH 运行:

$ export FLASK_APP=hello$ flask run* Running on http://127.0.0.1:5000/
复制代码

使用 Get 请求访问 http://127.0.0.1:5000/ ,可获得响应:

Hello,World!
复制代码

对/login 路径返回指定请求:

from flask import Flask, requestapp = Flask(__name__)# methods 代表只监听 get 和 post 请求@app.route("/login", methods=['post', 'get'])def login():res = { "methods": request.method, # 请求方法 "path": request.path, # 请求路径 "args": request.args, # 请求参数 "form": request.form # 表单 } return res
复制代码

使用 Get 请求访问 http://127.0.0.1:5000/login?a=1&b=2 时:

{"args": {"a": "1","b": "2"},"form": {},"methods": "GET","path": "/login"}
复制代码

使用 curl 命令发送 post 请求:

curl -X POST [http://127.0.0.1:5000/login](http://127.0.0.1:5000/login) -d "a=2"
复制代码


{"args":{},"form":{"a":"2"},"methods":"POST","path":"/login"}
复制代码

Session

Session 是基于 Cookie 实现, 保存在服务端的键值对,在浏览器的 Cookie 中也对应相同的随机字符 串,用来再次请求的时候验证:

Flask 的 Session 是通过加密之后放到了 Cookie 中,所以下面代码需要设置密钥。

from flask import Flask, request, sessionapp = Flask(__name__)# 配置密钥app.secret_key = "hello"# methods 代表只监听 get 和 post 请求@app.route("/login", methods=['post', 'get'])def login(): # 使用 session 将请求的 name 参数存到 session session["name"] = request.args.get("name") return {"msg": "OK"}
复制代码

在发起请求的浏览器可以看到 Cookies :

搜索微信公众号:TestingStudio 霍格沃兹的干货都很硬核

用户头像

社区:ceshiren.com 微信:ceshiren2023 2022-08-29 加入

微信公众号:霍格沃兹测试开发 提供性能测试、自动化测试、测试开发等资料、实事更新一线互联网大厂测试岗位内推需求,共享测试行业动态及资讯,更可零距离接触众多业内大佬

评论

发布
暂无评论
软件测试 | 后端web开发框架_测试_测吧(北京)科技有限公司_InfoQ写作社区