diff --git a/.main.py.swp b/.main.py.swp deleted file mode 100644 index e83f400..0000000 Binary files a/.main.py.swp and /dev/null differ diff --git a/README.md b/README.md index 43ac1ba..bc6e2a4 100644 --- a/README.md +++ b/README.md @@ -1 +1,11 @@ Здесь будет CMS на питоне с MongoDB. + +DB: pythoncms +Table: posts +Format: + +{ + "_id": "0123456789", + "name": "Title", + "text": "Hello, this is post" +} diff --git a/main.py b/main.py index 714374a..4a8eb23 100755 --- a/main.py +++ b/main.py @@ -1,9 +1,10 @@ #!/usr/bin/python3 from bottle import route, run, template, debug, request -import json -import os +import pymongo -database = dict(posts=dict(sdf='hello')) +mongoclient = pymongo.MongoClient('localhost', 27017) +database = mongoclient['pycms'] +posts = database['posts'] # /post [GET] @@ -11,31 +12,36 @@ database = dict(posts=dict(sdf='hello')) @route('/post/') def post(name): - # return template('Hello {{name}}!', name=database['posts'][name]) - return database['posts'][name] + return posts.find_one({'name':name})['text'] -# /post POST +# /post [POST] @route('/post/', method='POST') def post(name): body = request.forms.get('body') - newPost = {name: body} - return database['posts'].update(newPost) + # If post exists, update it + if posts.find_one({'name': name}): + newPost = {'$set': {'text': body}} + return str(posts.update_one({'name': name}, newPost)) + # Else - create new + else: + newPost = {'name': name, 'text': body} + return str(posts.insert_one(newPost).inserted_id) # /post [DELETE] @route('/post/', method='DELETE') def post(name): - return database['posts'].pop(name) + return str(posts.delete_one({'name':name})) # /debug (database) @route('/debug') def debug(): - return database + return type(posts) @route('/')