Mongodb Azure web app在初始化mongo DB客户端时崩溃
我已经用MongoDB驱动程序创建了Cosmos DB帐户,并希望从flask服务器访问它。下面是我正在尝试的最简单的例子:Mongodb Azure web app在初始化mongo DB客户端时崩溃,mongodb,azure,ssl,web-applications,azure-web-app-service,Mongodb,Azure,Ssl,Web Applications,Azure Web App Service,我已经用MongoDB驱动程序创建了Cosmos DB帐户,并希望从flask服务器访问它。下面是我正在尝试的最简单的例子: from flask import Flask from pymongo import MongoClient url = 'monbodb://<my_db_name>.documents.azure.com:10255/?ssl=true username = '<my_db_name>' password = '<my_passwo
from flask import Flask
from pymongo import MongoClient
url = 'monbodb://<my_db_name>.documents.azure.com:10255/?ssl=true
username = '<my_db_name>'
password = '<my_password>'
client = MongoClient(url, username=username, password=password)
app = Flask(__name__)
@app.route('/ping', methods=['GET'])
def ping():
return 'pong!'
if __name__ == '__main__':
app.run()
从烧瓶导入烧瓶
从pymongo导入MongoClient
url='1〕monbodb://.documents.azure.com:10255/?ssl=true
用户名=“”
密码=“”
客户端=MongoClient(url,用户名=用户名,密码=密码)
app=烧瓶(名称)
@app.route('/ping',方法=['GET'])
定义ping():
“砰!”
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
app.run()
我用git部署它,最后它说部署成功了。但真的应用程序崩溃了,因为网页不可访问,并说“由于发生内部服务器错误,无法显示网页。”。我想问题在于SSL,因为删除“/?SSL=true”确实允许访问应用程序网页,但在这种情况下无法访问数据库!问题出在哪里?如何解决?我尝试在azure flask web应用程序中访问我的
mongo db
,效果很好。您可以参考我的工作步骤和代码
view.py
切换到Kudu CMD并使用命令cd Python361x64
和触摸get pip.py
并复制url的内容https://bootstrap.pypa.io/get-pip.py
通过编辑按钮进入get pip.py
,然后运行python get pip.py
安装pip工具
在这里,我使用python361x64扩展。因此,我在KUDU中运行命令python-mpipinstallpyodbc
获取查询结果
访问urlhttp://***.azurewebsites.net/mongo
更多部署详细信息,请参阅此
希望对你有帮助。你好,杰。谢谢你的重播,我正在尝试你的解决方案。你能告诉我我应该编辑哪一个*.config文件吗?目前我看到的可能性很少:1)web.2.7.config在“/d/home/site/repository”中,2)web.2.7.config在“/d/home/wwwroot”中,3)web.config在“/d/home/site/wwwroot”中。@RailSuleymanov您需要编辑项目中保留的配置(可能是您提到的第3/d/home/site/wwwwroot)。请看我的附加截图。显然我们在不同的时区,因为我还没有机会查看。我一有机会就让你试试。但在我昨天回复的时候,我既不能创建文件(touch get pip.py),也不能在Kudu CMD中安装软件包,所以我想这将是一个挑战…@RailSuleymanov,没关系。您可以参考我以前案例中的详细信息:。如果您有任何问题或坚持一步,请让我知道。@RailSuleymanov无论如何,您可以参考我之前回答的案例,我相信您能解决!
from datetime import datetime
from flask import render_template
from jaygongflask import app
import pymongo
@app.route('/mongo')
def mongo():
uri = "mongodb://<account name>:<your account key>@<account name>.documents.azure.com:10255/?ssl=true&replicaSet=globaldb"
client = pymongo.MongoClient(uri)
db = client['db']
coll = db['coll']
doc= coll.find_one()
return render_template(
'mongo.html',
title='Mongo',
message='Mongo query result.',
queryResult = doc
)
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<appSettings>
<add key="WSGI_HANDLER" value="<Your Project Name>.app"/>
<add key="PYTHONPATH" value="D:\home\site\wwwroot"/>
<add key="WSGI_LOG" value="D:\home\LogFiles\wfastcgi.log"/>
</appSettings>
<system.webServer>
<handlers>
<add name="PythonHandler" path="*" verb="*" modules="FastCgiModule" scriptProcessor="D:\home\Python361x64\python.exe|D:\home\Python361x64\wfastcgi.py" resourceType="Unspecified" requireAccess="Script"/>
</handlers>
</system.webServer>
</configuration>