Python全栈快餐教程(1) - 用Flask处理HTTP请求

简介: # Python全栈快餐教程(1) - 用Flask处理HTTP请求 ## 初识Flask Flask是最流行的Python web框架之一。 我们来写个最小的web应用,只有一个路由先跑进来玩玩吧。 ```python from flask import Flask # 定义flask app对象 app = Flask(__name__) # 处理路由

Python全栈快餐教程(1) - 用Flask处理HTTP请求

初识Flask

Flask是最流行的Python web框架之一。

我们来写个最小的web应用,只有一个路由先跑进来玩玩吧。

from flask import Flask

# 定义flask app对象
app = Flask(__name__)

# 处理路由
@app.route('/')
def index():
    return "<h1>It works!</h1>"

# 运行起来,这里可以指定端口和调试属性等
app.run(port=30000,debug=True)

处理url路径中的数据

比如要处理http://localhost:30000/code/test,从中获取test这个字符串,可以这样写:

@app.route('/code/<code>')
def complete(code):
    print('Received code:%s' % code)
    return 'Hello, %s' % code

处理post消息

axios出场

要处理post消息的话,首先需要发送post消息,我们选择在前端来做这事儿吧。前端么,自然是js语言了,我们配上axios库。

我们在node.js里写一下:

const axios = require('axios');

const instance = axios.create({
  baseURL: 'http://127.0.0.1:30000',
  timeout: 1000});

instance.post('/complete', {code:'#include <iostream>试试中文行不行'})
.then(function (response) {
  console.log('complete: '+response.data);
})
.catch(function (error) {
  console.log(error);
});

处理post数据

其实非常简单,只要把request的data读出来就好了。因为我们从js送过来的是一个字节编码的json串,所以我们先解码一下,然后转成json格式,最后读取一下相应字段就好了:

@app.route('/complete', methods=['POST'])
def code_complete():
    code = request.data.decode()
    code2 = json.loads(code)
    return 'Hello'+code2.get('code')

一些小trick

  • Windows机器的名字不要用中文,否则flask无法启动
  • 不要用6666端口,否则Chrome不认
  • POST的消息要处理,否则会报keyError返回一个错误页面
目录
相关文章
|
21天前
|
JSON Java 数据格式
java操作http请求针对不同提交方式(application/json和application/x-www-form-urlencoded)
java操作http请求针对不同提交方式(application/json和application/x-www-form-urlencoded)
75 25
java操作http请求针对不同提交方式(application/json和application/x-www-form-urlencoded)
|
3天前
|
JSON JavaScript 前端开发
什么是HTTP POST请求?初学者指南与示范
HTTP POST请求是一种常用的HTTP方法,主要用于向服务器发送数据。通过合理设置请求头和请求主体,可以实现数据的可靠传输。无论是在客户端使用JavaScript,还是在服务器端使用Node.js,理解和掌握POST请求的工作原理和应用场景,对于Web开发至关重要。
69 18
|
6天前
|
数据采集 网络安全 Python
【Python】怎么解决:urllib.error.HTTPError: HTTP Error 403: Forbidden
解决 `urllib.error.HTTPError: HTTP Error 403: Forbidden`错误需要根据具体情况进行不同的尝试。通过检查URL、模拟浏览器请求、使用代理服务器和Cookies、减慢请求速度、使用随机的User-Agent以及使用更加方便的 `requests`库,可以有效解决此类问题。通过逐步分析和调试,可以找到最合适的解决方案。
47 18
|
2天前
|
JSON 数据格式
.net HTTP请求类封装
`HttpRequestHelper` 是一个用于简化 HTTP 请求的辅助类,支持发送 GET 和 POST 请求。它使用 `HttpClient` 发起请求,并通过 `Newtonsoft.Json` 处理 JSON 数据。示例展示了如何使用该类发送请求并处理响应。注意事项包括:简单的错误处理、需安装 `Newtonsoft.Json` 依赖,以及建议重用 `HttpClient` 实例以优化性能。
42 2
|
12天前
|
数据可视化 DataX Python
Seaborn 教程-绘图函数
Seaborn 教程-绘图函数
42 8
|
12天前
Seaborn 教程-主题(Theme)
Seaborn 教程-主题(Theme)
35 7
|
20天前
|
Web App开发 大数据 应用服务中间件
什么是 HTTP Range请求(范围请求)
HTTP Range 请求是一种非常有用的 HTTP 功能,允许客户端请求资源的特定部分,从而提高传输效率和用户体验。通过合理使用 Range 请求,可以实现断点续传、视频流播放和按需加载等功能。了解并掌握 HTTP Range 请求的工作原理和应用场景,对开发高效的网络应用至关重要。
58 15
|
12天前
|
Python
Seaborn 教程-模板(Context)
Seaborn 教程-模板(Context)
37 4
|
12天前
|
数据可视化 Python
Seaborn 教程
Seaborn 教程
32 5
|
20天前
|
数据采集 数据安全/隐私保护 Python
【Python】已解决:urllib.error.HTTPError: HTTP Error 403: Forbidden
通过上述方法,可以有效解决 `urllib.error.HTTPError: HTTP Error 403: Forbidden` 错误。具体选择哪种方法取决于服务器对请求的限制。通常情况下,添加用户代理和模拟浏览器请求是最常见且有效的解决方案。
90 10