python学习笔记-基于flask的web服务提供

本文介绍如何使用Python的Flask框架搭建Web应用,包括创建Flask应用实例、配置路由及处理HTTP请求的方法,并演示了如何实现重定向、设置Cookie及异常处理等功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景:

在python下提供web服务。根据请求的url中的关键字和参数进行具体处理。

流程:

客户端->web 服务器->WSGI->application
客户端发送 HTTP 请求,web 服务器在一个地址的端口上等待接收,一旦收到,会将请求通过 WSGI 交给 application 处理,application 就是 flask 框架编写的应用,application 对消息处理后,也通过 WSGI 返回 HTTP 响应给 web 服务器,由服务器发送给客户端。
所有 Flask 程序都必须创建一个程序实例,实例是 Flask 类的对象,创建实例方法如下:

from flask import Flask
app = Flask(__name__)

web 服务器
常见的有 uWSGI、Nginx、gunicorn 等
flask 集成了一个开发用的web服务器,同一时间只能处理一个请求。使用 flask 集成的服务器:

if __name__ == '__main__':
    app.run()

代码:

# -*- coding: utf-8 -*-

from flask import Flask
from flask import request
from flask import make_response
from flask import redirect#重定向
from flask import abort #异常抛出
app = Flask(__name__)

# 对 url 中,/user/ 后面的内容进行匹配、截取,赋值给变量 name,默认匹配字符串,可以指定类型。例如,/user/<int:id> 只匹配 id 为整数的 URL
@app.route('/user/<name>')

def hello_world(name):#变量 name 作为参数传递给函数 user[关键字参数]
    #可以根据不同的name关键字做不同的处理逻辑
    if name == "print":
        p1 = request.args.get('p1', 1, type=int)#从 url 获取 键为 p1 的 值转换为整形,如果没有 或 转换失败,默认为 1
        p2 = request.args.get('p2', 1, type=str)
        return "OK" + str(p1) + " " + str(p2)
    elif name == "return":
        print(request.args)
        response = make_response('<h1>This document carries a cookie!</h1>')#采用Response 对象返回响应
        # response.headers()
        response.set_cookie('answer', '42') # 设置 cookie
        return response
        # return 'Hello World!' + "\t" + name
    elif name == "redir":
        return redirect("http://baidu.com")#对该url进行重定向
    elif name == "notfind":
        print("not find")
        abort(404)#注意,abort 会直接跳出调用它的函数,抛出异常,把控制权交给 Web 服务器
    else:
        return "None"

if __name__ == '__main__':
    app.run()#它告诉Flask以开发模式运行你的网站以便于测试
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值