You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
54 lines
1.3 KiB
54 lines
1.3 KiB
3 years ago
|
import os
|
||
|
from flask import Flask, request, jsonify
|
||
|
from flask_pymongo import PyMongo
|
||
|
|
||
|
application = Flask(__name__)
|
||
|
|
||
|
application.config["MONGO_URI"] = 'mongodb://' + os.environ['MONGODB_USERNAME'] + ':' + os.environ['MONGODB_PASSWORD'] + '@' + os.environ['MONGODB_HOSTNAME'] + ':27017/' + os.environ['MONGODB_DATABASE']
|
||
|
|
||
|
mongo = PyMongo(application)
|
||
|
db = mongo.db
|
||
|
|
||
|
@application.route('/')
|
||
|
def index():
|
||
|
return jsonify(
|
||
|
status=True,
|
||
|
message='Welcome to the Dockerized MongoDB app!'
|
||
|
)
|
||
|
|
||
|
@application.route('/todo')
|
||
|
def todo():
|
||
|
_todos = db.todo.find()
|
||
|
|
||
|
item = {}
|
||
|
data = []
|
||
|
for todo in _todos:
|
||
|
item = {
|
||
|
'id': str(todo['_id']),
|
||
|
'todo': todo['todo']
|
||
|
}
|
||
|
data.append(item)
|
||
|
|
||
|
return jsonify(
|
||
|
status=True,
|
||
|
data=data
|
||
|
)
|
||
|
|
||
|
@application.route('/todo', methods=['POST'])
|
||
|
def createTodo():
|
||
|
data = request.get_json(force=True)
|
||
|
item = {
|
||
|
'todo': data['todo']
|
||
|
}
|
||
|
db.todo.insert_one(item)
|
||
|
|
||
|
return jsonify(
|
||
|
status=True,
|
||
|
message='To-do saved successfully!'
|
||
|
), 201
|
||
|
|
||
|
if __name__ == "__main__":
|
||
|
ENVIRONMENT_DEBUG = os.environ.get("APP_DEBUG", True)
|
||
|
ENVIRONMENT_PORT = os.environ.get("APP_PORT", 5000)
|
||
|
application.run(host='0.0.0.0', port=ENVIRONMENT_PORT, debug=ENVIRONMENT_DEBUG)
|