You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为连接Azure Cosmos DB的Flask应用传递环境变量并测试?

搞定Flask环境变量配置与Windows运行测试的完整指南

嘿,作为Python新手能想到用环境变量管理敏感信息,这点做得超棒!我来一步步帮你解决配置和运行的问题:

一、先给你的代码做个小优化(避免踩坑)

你现在直接用os.environ['connectionstring']的话,如果环境变量没设置,程序会直接崩溃。改成下面的写法更健壮,还能帮你快速排查问题:

import os
from flask import Flask
from azure.storage.table import TableService, Entity

APP = Flask(__name__)
APP.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False

# 用os.getenv读取,第二个参数是默认值,还加了空值检查
connectionstring = os.getenv('AZURE_COSMOS_CONNECTION_STRING', '')
if not connectionstring:
    raise ValueError("快设置AZURE_COSMOS_CONNECTION_STRING环境变量呀!")

@APP.route('/getdata')
def view_registered_guests():
    print("进入方法啦")
    table_service = TableService(connection_string=connectionstring)
    table_name = 'tablebasics'
    entity = table_service.get_entity(table_name, 'Harp', '2')
    print(entity['email'], entity['phone'])
    return f"Email: {entity['email']} 手机号: {entity['phone']}"

if __name__ == '__main__':
    APP.run(debug=True)

我把环境变量名改成了更规范的AZURE_COSMOS_CONNECTION_STRING,避免和其他变量重名,同时加了空值检查,启动时没设置变量会直接提示,不用瞎猜哪里出问题。

二、Windows命令行设置环境变量

临时设置(只在当前cmd窗口有效)

打开cmd,直接输入:

set AZURE_COSMOS_CONNECTION_STRING="你的Azure Cosmos DB连接字符串"

注意:连接字符串里的特殊字符不用转义,直接复制粘贴就行。

永久设置(重启电脑后依然有效)

如果不想每次打开cmd都重新设置,可以搞成永久的:

  1. 右键「此电脑」→「属性」→「高级系统设置」→「环境变量」
  2. 在「用户变量」(只对你当前账号生效)或者「系统变量」(所有账号生效,需管理员权限)里点击「新建」
  3. 变量名填AZURE_COSMOS_CONNECTION_STRING,变量值粘贴你的连接字符串,点确定保存
  4. 重启cmd窗口,环境变量就生效啦

三、Windows命令行运行和测试Flask应用

第一步:安装依赖

先确保你装了需要的包,打开cmd输入:

pip install flask azure-storage-table

第二步:运行Flask应用

假设你的代码文件名叫app.py:

  • 如果用代码里的APP.run()启动,直接输入:
python app.py
  • 或者用Flask官方命令,先设置入口文件:
set FLASK_APP=app.py
flask run

启动成功后,你会看到类似「Running on http://127.0.0.1:5000/」的提示。

第三步:测试API

两种方式都可以:

  1. 打开浏览器,直接访问 http://localhost:5000/getdata,就能看到返回的邮箱和手机号啦
  2. 用curl命令(如果你的Windows装了curl),在cmd里输入:
curl http://localhost:5000/getdata

四、提前为Docker化做准备(给你提个醒)

既然你后续要容器化,现在可以先做两个小准备:

  1. 创建requirements.txt文件,把依赖列清楚:
flask>=2.0.0
azure-storage-table>=2.1.0
  1. 写Dockerfile的时候,可以用ENV指令设置默认环境变量,或者运行容器时用-e参数传入(更安全,避免把敏感信息写到镜像里):
FROM python:3.9-slim

WORKDIR /app

COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

COPY . .

# 这里只是设个空默认,运行容器时再传真实值
ENV AZURE_COSMOS_CONNECTION_STRING=""

CMD ["python", "app.py"]

运行容器时传入环境变量的命令是:

docker run -e AZURE_COSMOS_CONNECTION_STRING="你的连接字符串" -p 5000:5000 你的镜像名称

这样从本地配置到运行测试,再到后续Docker化的准备就都搞定啦!

内容的提问来源于stack exchange,提问作者user3541321

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:12:39