好的,所以我安装了Flask,我想知道如何连接并使用我即将开始构建的Flask应用程序使用MongoDB数据库。
答案 0 :(得分:9)
您可以使用这三个库中的任何一个
我个人使用烧瓶mongoengine,一切正常
答案 1 :(得分:6)
我个人觉得PyMongo库简单易用。
首先需要导入collections.Counter
并创建连接:
MongoClient
然后获取您的数据库实例和集合(表):
from pymongo import MongoClient
client = MongoClient()
然后,您可以通过使用保存数据的JSON文档来处理数据。他们的网站上有一个完整的例子。
查看有关如何使用PyMongo的this教程。
答案 2 :(得分:3)
也许您不必使用Flask的特殊库来连接MongoDB。
将Flask应用程序视为普通的Python程序,并通过普通的Python库(如PyMongo)连接到MongoDB。
Here是其他人的榜样。通过PyMongo连接到MongoDB的Flask应用程序。
答案 3 :(得分:2)
这是带有Flask的MongoDB的简单示例
import pymongo
import json
client = pymongo.MongoClient("localhost", 27017)
collection_USER = client[simple]
Define_Collection_for_USER_FILE = collection_USER['USER']
Define_Collection_for_USER_FILE.remove({})
Define_Collection_for_USER_FILE.insert(json.loads(filename))
答案 4 :(得分:2)
将MongoDB与Flask结合使用有多种方法-Flask_pymongo和flask_mongoengine是两个python模块,可用于轻松与mongoDB集成。两者都使用pymongo作为基础库,因此在使用任何模块(flask_pymongo和flask_mongoengine)时,可以轻松继承pymongo可用的nd类方法。我发现使用mongoengine创建模型更加容易。我正在使用flask_mongoengine提供解决方案。
使用python 3.6 +和flask 1.1.1 + (也通过Python 3.7+进行了测试)
使用flask_mongoengine
configuration-file.cfg
MONGODB_SETTINGS = {
'DB': 'Your_DB_Name',
'host': 'localhost',
'port': 27017,
}
App.py文件
app.config['SECRET_KEY'] = SECRET_KEY
db = MongoEngine()
app.config.from_pyfile('settings.cfg')
with app.app_context():
db.init_app(app)
try:
db_client = db.connection['flask_webapp_db']
except ConnectionFailure as e:
sys.stderr.write("Could not connect to MongoDB: %s" % e)
sys.exit(1)
........
@app.route('/')
def signup():
signup_form = get_signup_form(User)
if signup_form.validate_on_submit():
try:
user = db_client.User
user.save(signup_form.data)
print('user registered')
return redirect('/')
except WriteError as WE:
print(WE)
return render_template('signup.html', form=signup_form)
在models文件中创建用户模型,该文件应如下所示-该文件定义了表( 在Mongodb中称为Document )
models.py
from mongoengine.document import Document
from mongoengine.fields import DateTimeField, StringField, EmailField
class User(Document):
username = StringField(min_length=4, required=True, unique=True)
password = StringField(min_length=8, required=True)
meta = {'db_alias': 'flask_webapp_db'} # your db name where you want to create the table(Dcoument) User is your Document(Table) name
def save(self, force_insert=False, validate=True, clean=True,
write_concern=None, cascade=None, cascade_kwargs=None,
_refs=None, save_condition=None, signal_kwargs=None, **kwargs):
pass
答案 5 :(得分:0)
我正在使用Flask-Pymongo:
from pymongo import MongoClient
app = Flask(__name__)
app.config['MONGO_DBNAME'] = 'reports' # name of database on mongo
app.config["MONGO_URI"] = "mongodb://127.0.0.1:27017/reports"
mongo = PyMongo(app)
正在工作!
答案 6 :(得分:0)
您必须遵循几个步骤。由于flask是一个较轻的框架,因此您将需要安装不同的软件包以根据需要使用。
因此,由于您将使用Mongodb在您的项目中工作,因此必须安装Pymongo
。
pip install Pymongo
之后,您将需要在MongoDB中设置数据库:
数据库名称:MyDaTaBaSe
。
完成后,设置您的工作环境:
import os
from flask import Flask, render_template, redirect, request, url_for, session
from flask_pymongo import PyMongo #<<< THIS IS THE GUY YOU WILL NEED TO CONNECT WITH Mongodb
app = Flask(__name__)
#App configuration -- table name and the link
app.secret_key = 'any random string'
app.config['MONG_DBNAME'] = 'MyDaTaBaSe'
app.config['MONGO_URI'] = 'mongodb+srv://<YOUR_USERNAME_HERE>:<YOUR_PASSWORD_HERE>@myfirstcluster-uyvei.mongodb.net/MyDaTaBaSe?retryWrites=true'
mongo = PyMongo(app)
@app.route(/)
def index():
return render_template('index.hml')
因此,主要角色是app.config['MONG_DBNAME'] = 'MyDaTaBaSe'
,您将需要告诉您要使用哪个数据库,以及app.config['MONGO_URI']
,您将需要在其中建立连接和链接最后放置用户名和密码以及数据库名称。
因此,这是与Mongodb连接的基础。