import ssl from flask import Flask from flask_restful import Resource, Api, reqparse, abort from pymongo import MongoClient from bson.objectid import ObjectId app = Flask(__name__) api = Api(app) client = MongoClient("mongodb+srv://mycity:mycity123@mycity-3v9y3.mongodb.net/test?retryWrites=true", ssl_cert_reqs=ssl.CERT_NONE) db = client.voting_system collection = db.votings class Votings(Resource): def get(self): votings = [ { 'id' : str(doc['_id']), 'name': doc['name'], 'desc': doc['desc'], 'img' : doc['img'] } for doc in collection.find({}) ] return votings class Vote(Resource): def get(self, voting_id): try: doc = collection.find_one({'_id': ObjectId(voting_id)}) doc['_id'] = str(doc['_id']) return { k.replace('_id', 'id'): v for k, v in doc.items() } except: abort(404, error="Voting {} doesn't exist".format(voting_id)) api.add_resource(Votings, '/votings') api.add_resource(Vote, '/votings/') if __name__ == '__main__': app.run(debug=True)