flask基本使用

简介: flask基本使用
from flask import Flask, jsonify, request, make_response, redirect
import datetime
app = Flask(__name__)
app.config["JSON_AS_ASCII"] = False  # jsonify返回的中文正常显示
# 第一步
@app.route("/")
def test1():
    return "你好flask"
# 返回json数据
@app.route('/json')
def do_json():
    hello = {"name": "stranger", "say": "hello"}
    return jsonify(hello)
# 状态码设置
@app.route('/status_500')
def status_500():
    return "hello", 500
# cookie
@app.route('/set_cookie')
def set_cookie():
    response = make_response('这个页面携带cookie')
    out_date = datetime.datetime.today() + datetime.timedelta(days=30)  # cookie的有效时长30天
    response.set_cookie('username', 'li1236', expires=out_date)
    return response
# 重定向
@app.route('/redir')
def redir():
    return redirect('https://www.baidu.com')
# 设置请求方法
@app.route("/users", methods=["GET"])
def get_all_users():
    """获取所有用户信息"""
    return jsonify({"code": "200", "data": {"id": 3, "username": "大白", "password": "666666"}, "msg": "操作成功"})
# 控制用户输入数据格式
# 普通的values值传输
@app.route("/values", methods=['POST'])
def values():
    values1 = request.values.get('values1')
    values2 = request.values.get('values2')
    if values1 and values2:
        return jsonify({"code": 200, "msg": "values传参方式访问成功"})
    else:
        return jsonify({"code": 2001, "msg": "values1/values2不能为空,请检查"})
# form值传输
@app.route("/form", methods=['POST'])
def form():
    form1 = request.form.get('form1')
    form2 = request.form.get('form2')
    if form1 and form2:
        return jsonify({"code": 200, "msg": "from传参方式访问成功"})
    else:
        return jsonify({"code": 2001, "msg": "form1/form2不能为空,请检查"})
# 传参方式必须是application/json
@app.route("/register", methods=['POST'])
def userRegister():
    username = request.json.get("username").strip()  # 用户名
    password = request.json.get("password").strip()  # 密码
    if username and password:
        if username == "李帅哥":
            return jsonify({"code": 2002, "msg": "用户名已存在"})
        elif len(password) < 6:
            return jsonify({"code": 2002, "msg": "密码长度必须大于或者等于6位"})
        else:
            return jsonify({"code": 200, "msg": "恭喜,注册成功!"})
    else:
        return jsonify({"code": 2001, "msg": "用户名/密码不能为空,请检查"})
# 控制用户的请求方法
# delete方法
# delete和get的传参直接写在方法名后面
@app.route("/delete/<int:userId>", methods=['DELETE'])
def delete(userId):
    if userId > 0 and userId < 10:
        return jsonify({"code": 200, "msg": "删除" + str(userId) + "成功"})
    else:
        return jsonify({"code": 200, "msg": "该用户不存在"}), 200
# put方法方法
@app.route("/put", methods=['PUT'])
def put():
    put1 = request.values.get('put1')
    put2 = request.values.get('put2')
    if put1 and put2:
        return jsonify({"code": 200, "msg": "put请求方式访问成功,信息修改成功"})
    else:
        return jsonify({"code": 2001, "msg": "put1/put2不能为空,请检查"})
#登录生成cookie
@app.route('/login', methods=["POST"])
def login():
    name = request.json.get('name')
    pwd = request.json.get('pwd')
    if name and pwd:
        if name == "li" and pwd == "123":
            response = make_response(jsonify({"msg": "恭喜,注册成功"}))
            out_date = datetime.datetime.today() + datetime.timedelta(days=30)  # cookie的有效时长30天
            response.set_cookie('username', 'li1236', expires=out_date)
            return response, 200
    else:
        return '登陆失败'
if __name__ == '__main__':
    app.run(debug=True)
相关文章
|
10月前
|
存储 JSON 缓存
Flask框架之Restful--介绍--下载--基本使用
Flask框架之Restful--介绍--下载--基本使用
|
存储 前端开发 Python
Flask(9)- 蓝图的基本使用(下)
Flask(9)- 蓝图的基本使用(下)
226 0
Flask(9)- 蓝图的基本使用(下)
|
存储 Python
Flask(9)- 蓝图的基本使用(上)
Flask(9)- 蓝图的基本使用(上)
133 0
Flask(9)- 蓝图的基本使用(上)
|
11天前
|
JSON API 数据格式
构建RESTful APIs:使用Python和Flask
【4月更文挑战第9天】本文介绍了如何使用Python的Flask框架构建RESTful API。Flask是一个轻量级的Web应用框架,适合小型项目和微服务。首先,确保安装了Python和Flask,然后通过创建基本的Flask应用开始。接着,定义资源和路由,例如为“图书”资源创建GET、POST、PUT和DELETE方法的路由。使用`request`对象处理客户端数据,`jsonify`生成JSON响应。错误处理通过返回错误信息和相应HTTP状态码完成。最后,运行并测试API,发现Flask提供了一种简单高效的方式来构建RESTful APIs。
|
11天前
|
安全 数据库 C++
Python Web框架比较:Django vs Flask vs Pyramid
【4月更文挑战第9天】本文对比了Python三大Web框架Django、Flask和Pyramid。Django功能全面,适合快速开发,但学习曲线较陡;Flask轻量灵活,易于入门,但默认配置简单,需自行添加功能;Pyramid兼顾灵活性和可扩展性,适合不同规模项目,但社区及资源相对较少。选择框架应考虑项目需求和开发者偏好。
|
11天前
|
API 数据库 数据安全/隐私保护
Flask框架在Python面试中的应用与实战
【4月更文挑战第18天】Django REST framework (DRF) 是用于构建Web API的强力工具,尤其适合Django应用。本文深入讨论DRF面试常见问题,包括视图、序列化、路由、权限控制、分页过滤排序及错误处理。同时,强调了易错点如序列化器验证、权限认证配置、API版本管理、性能优化和响应格式统一,并提供实战代码示例。了解这些知识点有助于在Python面试中展现优秀的Web服务开发能力。
33 1
|
5天前
|
应用服务中间件 nginx Docker
使用 Python Flask 创建简易文件上传服务
在平时工作中,文件上传是一项常见的需求,例如将应用异常时通过脚本生成的dump文件收集起来进行分析,但实现起来却可能相当复杂。幸运的是,Flask框架提供了一种简单而高效的方式来处理文件上传,代码不到100行。在本文中,我们将探讨如何使用Flask实现文件上传功能,编写Dockerfile将应用程序通过docker部署。
|
11天前
|
前端开发 安全 JavaScript
Python的Flask框架的学习笔记(前后端变量传送,文件上传,网页返回)内含实战:实现一个简单的登录页面
Python的Flask框架的学习笔记(前后端变量传送,文件上传,网页返回)内含实战:实现一个简单的登录页面
|
6天前
|
缓存 API 数据库
构建高效Python Web应用:Flask框架与RESTful API设计原则
【5月更文挑战第20天】 在现代Web开发中,构建一个轻量级且高效的后端服务至关重要。本文将深入探讨如何使用Python的Flask框架结合RESTful API设计原则来创建可扩展和易于维护的Web应用程序。我们将通过分析Flask的核心特性,以及如何利用它来实现资源的合理划分、接口的版本控制和请求处理优化等,来指导读者打造高性能的API服务。文中不仅提供了理论指导,还包括了实践案例,旨在帮助开发者提升开发效率,并增强应用的稳定性和用户体验。
|
11天前
|
存储 缓存 监控
利用Python和Flask构建RESTful API的实战指南
在当今的软件开发中,RESTful API已成为前后端分离架构中的核心组件。本文将带你走进实战,通过Python的Flask框架,一步步构建出高效、安全的RESTful API。我们将从项目初始化、路由设置、数据验证、错误处理到API文档生成,全方位地探讨如何构建RESTful API,并给出一些实用的最佳实践和优化建议。