1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
|
import datetime
import os
import sys
import flask
sys.path.insert(0, os.path.realpath(os.path.join(os.path.dirname(__file__), "../../")))
from flask_mongoengine import MongoEngine
from flask_debugtoolbar import DebugToolbarExtension
app = flask.Flask(__name__)
app.config.from_object(__name__)
app.config["MONGODB_SETTINGS"] = {"DB": "testing"}
app.config["TESTING"] = True
app.config["SECRET_KEY"] = "flask+mongoengine=<3"
app.debug = True
app.config["DEBUG_TB_PANELS"] = (
"flask_debugtoolbar.panels.versions.VersionDebugPanel",
"flask_debugtoolbar.panels.timer.TimerDebugPanel",
"flask_debugtoolbar.panels.headers.HeaderDebugPanel",
"flask_debugtoolbar.panels.request_vars.RequestVarsDebugPanel",
"flask_debugtoolbar.panels.template.TemplateDebugPanel",
"flask_debugtoolbar.panels.logger.LoggingPanel",
"flask_mongoengine.panels.MongoDebugPanel",
)
app.config["DEBUG_TB_INTERCEPT_REDIRECTS"] = False
db = MongoEngine()
db.init_app(app)
DebugToolbarExtension(app)
class Todo(db.Document):
title = db.StringField(max_length=60)
text = db.StringField()
done = db.BooleanField(default=False)
pub_date = db.DateTimeField(default=datetime.datetime.now)
@app.route("/")
def index():
# As a list to test debug toolbar
Todo.objects().delete() # Removes
Todo(title="Simple todo A", text="12345678910").save() # Insert
Todo(title="Simple todo B", text="12345678910").save() # Insert
Todo.objects(title__contains="B").update(set__text="Hello world") # Update
todos = Todo.objects.all()
return flask.render_template("index.html", todos=todos)
if __name__ == "__main__":
app.run(host="0.0.0.0", port=4000)
|