📜  flask mongoengine 配置 - Python (1)

📅  最后修改于: 2023-12-03 15:30:47.027000             🧑  作者: Mango

Flask MongoEngine 配置 - Python

Flask是一个强大的web应用开发框架,而MongoEngine是为了方便Python写MongoDB数据库的一个工具。这篇文章将会介绍如何使用Flask和MongoEngine来创建和配置一个数据库。

安装Flask和MongoEngine

首先,我们需要安装Flask和MongoEngine。

pip install flask
pip install mongoengine
创建 Flask 应用

我们先创建一个基本的Flask应用:

from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello, World!'
配置MongoEngine

接着,我们需要配置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,以及如何使用它们来创建模型和文档。