📅  最后修改于: 2023-12-03 15:30:47.027000             🧑  作者: Mango
Flask是一个强大的web应用开发框架,而MongoEngine是为了方便Python写MongoDB数据库的一个工具。这篇文章将会介绍如何使用Flask和MongoEngine来创建和配置一个数据库。
首先,我们需要安装Flask和MongoEngine。
pip install flask
pip install mongoengine
我们先创建一个基本的Flask应用:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello, World!'
接着,我们需要配置MongoEngine。在 Flask 中,我们将配置存储在 app.config 对象中。我们需要创建一个新的 config.py 文件来存储我们的数据库配置。
# config.py
MONGODB_SETTINGS = {
'db': 'mydatabase',
'host': 'localhost',
'port': 27017
}
这里使用了 MongoDB 的默认设置,将数据库名称设置为 mydatabase
,将主机名设置为 localhost
,端口号设置为 27017
。
接下来,我们在主应用中使用 from_object()
方法来加载配置文件。
# app.py
from flask import Flask
from flask_mongoengine import MongoEngine
app = Flask(__name__)
app.config.from_object('config.MONGODB_SETTINGS')
db = MongoEngine(app)
@app.route('/')
def hello_world():
return 'Hello, World!'
我们从 config.MONGODB\_SETTINGS
加载了我们的配置,然后传递给 MongoEngine(app)
让它连接。
现在我们已经有了一个基本的Flask应用和配置了MongoEngine,我们可以开始创建模型了。在MongoEngine中,每个模型都是一个MongoDB文档。
下面是一个简单的示例模型:
from datetime import datetime
from mongoengine import Document, StringField, DateTimeField
class User(Document):
username = StringField(max_length=50, required=True, unique=True)
email = StringField(max_length=50, required=True, unique=True)
created_at = DateTimeField(default=datetime.now)
def __unicode__(self):
return self.username
这是一个简单的用户模型。它有一个 username
字段、一个 email
字段和一个 created\_at
字段。
我们的模型是定义好的,现在我们需要将其更新到MongoDB数据库的文档中。
from datetime import datetime
from flask import Flask
from flask_mongoengine import MongoEngine
app = Flask(__name__)
app.config.from_object('config.MONGODB_SETTINGS')
db = MongoEngine(app)
class User(db.Document):
username = db.StringField(max_length=50, required=True, unique=True)
email = db.StringField(max_length=50, required=True, unique=True)
created_at = db.DateTimeField(default=datetime.now)
def __unicode__(self):
return self.username
@app.route('/')
def hello_world():
user = User(username='testuser', email='testuser@example.com')
user.save()
return 'User %s was created!' % user.username
我们把模型通过 MongoEngine(app)
注册到主应用中,然后就可以使用 User
模型来创建用户了。在这个例子中,我们创建了一个名为 testuser
的用户。
Flask和MongoEngine是Python中创建和配置数据库的很好的工具。我们通过在Flask中使用MongoEngine,可以更轻松地定义和操作MongoDB文档。本篇文章介绍了如何配置Flask和MongoEngine,以及如何使用它们来创建模型和文档。