Skip to content

Instantly share code, notes, and snippets.

@SammyOut
Created June 4, 2019 01:13
Show Gist options
  • Select an option

  • Save SammyOut/64f39e8e43e04e7ae24c0be8951d6b7f to your computer and use it in GitHub Desktop.

Select an option

Save SammyOut/64f39e8e43e04e7ae24c0be8951d6b7f to your computer and use it in GitHub Desktop.
dsm camp server
from flask import Flask
from views import MemoListView, MemoView
app = Flask(__name__)
app.add_url_rule('/memo', view_func=MemoListView.as_view('memo_list'))
app.add_url_rule('/memo/<int:pk>', view_func=MemoView.as_view('memo'))
if __name__ == '__main__':
app.run('0.0.0.0', port=604)
from uuid import uuid4
from os import listdir, remove
from os.path import isfile, exists
from typing import List, Dict
def load_file_names() -> List[str]:
return [file_name for file_name in listdir('memos') if isfile(f'memos/{file_name}')]
def load_all_memos() -> List[Dict[str, str]]:
memos = []
for file_name in load_all_memos():
with open(f'memos/{file_name}') as f:
memos.append({
'file_name': file_name,
'memo': f.read()
})
return memos
def create_memo(content: str):
with open(f'memos/{str(uuid4())}', 'w') as f:
f.write(content)
def update_memo(file_name: str, content: str):
with open(f'memos/{file_name}', 'w') as f:
f.write(content)
def delete_memo(file_name: str):
if exists(f'memos/{file_name}'):
remove(f'memos/{file_name}')
from flask import jsonify, request, Response
from flask.views import MethodView
from memo_manager import *
class MemoListView(MethodView):
def get(self):
memos = load_all_memos()
return jsonify(memos, ensure_ascii=False)
def post(self):
create_memo(request.get_data())
return Response('', 201)
class MemoView(MethodView):
def delete(self, file_name: str):
delete_memo(file_name)
return Response(204)
def put(self, file_name: str):
update_memo(file_name, request.get_data())
return Response(200)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment