我目前正在开发一个FlaskREST API,它与Docker化的MySQL数据库交互.在try 使用cURL访问/api/create_count端点时,我遇到了404错误.奇怪的是,指向‘/’端点的索引似乎运行得很好

端点:/api/create_account cURL请求:

curl --location 'http://localhost:5000/api/create_account' \
--header 'Content-Type: application/json' \
--data-raw '{
  "username": "new_username",
  "email": "new_email@example.com",
  "password": "new_password"
}'

错误信息:

<!doctype html>
<html lang=en>
<title>404 Not Found</title>
<h1>Not Found</h1>
<p>The requested URL was not found on the server. If you entered the URL manually please check your spelling and try again.</p>

到目前为止,我查到的是:

  • 已验证是否为/api/create_account正确定义了Flask路由.
  • 更改代码后,已重新启动FlaskTM服务器.
  • 已判断是否可以访问Flaskapp中的其他终结点.
  • 已确保Docker容器位于同一网络中.

代码片段: /api/Create_Account.

@app.route('/api/create_account', methods=['POST'])
def create_account():
    data = request.get_json()
    username = data.get('username')
    email = data.get('email')
    password = data.get('password')

    hashed_password = hash_password(password)
    write_to_Users('unique_google_id', username, email, 'UName', '2003-03-05', 'Male', 'Sample School')
    return jsonify(message='Account created successfully'), 200

文档文件

FROM python:3.8
EXPOSE 5000
WORKDIR /app
COPY requirements.txt /app
RUN pip install -r requirements.txt
COPY app.py /app
CMD python app.py

如果能深入了解为什么我可能会遇到专门针对/api/create_count端点的404错误,我将不胜感激.如果您需要更多信息或代码片段,请让我知道.谢谢!

推荐答案

我认为您错过了curl命令的-X POST选项,如果未指定方法,则curl默认为GET,并且您将/api/create_account路由配置为仅接收POST请求

@app.route('/api/create_account', methods=['POST'])

Python相关问答推荐

Asyncio与队列的多处理通信-仅运行一个协程

OdooElectron 商务产品详情页面中add_qty参数动态更新

Polars Select 多个元素产品

如何在Python中按组应用简单的线性回归?

如何计算列表列行之间的公共元素

更改matplotlib彩色条的字体并勾选标签?

Python多处理:当我在一个巨大的pandas数据框架上启动许多进程时,程序就会陷入困境

2维数组9x9,不使用numpy.数组(MutableSequence的子类)

Select 用a和i标签包裹的复选框?

Pandas 有条件轮班操作

从numpy数组和参数创建收件箱

如何记录脚本输出

如何获得每个组的时间戳差异?

无法使用DBFS File API路径附加到CSV In Datricks(OSError Errno 95操作不支持)

如何在WSL2中更新Python到最新版本(3.12.2)?

导入...从...混乱

连接一个rabrame和另一个1d rabrame不是问题,但当使用[...]'运算符会产生不同的结果

joblib:无法从父目录的另一个子文件夹加载转储模型

无论输入分辨率如何,稳定扩散管道始终输出512 * 512张图像

Python避免mypy在相互引用中从另一个类重定义类时失败