Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from flask import Flask
- from flask import request
- from flask import Response
- from flask import json
- import pymysql
- from datetime import datetime
- from calendar import timegm
- import time
- import random
- import string
- app = Flask(__name__, static_url_path='/img', static_folder='./img')
- conn = pymysql.connect(host='localhost', user='비밀이지롱', password='안알랴줌',
- db='mashup', charset='utf8')
- @app.route("/")
- def hello():
- return Response(
- response=json.dumps(
- {
- 'message':'hell world!'
- }
- ),
- status=200,
- mimetype='application/json'
- )
- @app.route("/api/user", methods=['POST'])
- def signup():
- facebook_id = request.form.get('facebook_id')
- name = request.form.get('name')
- profile_image = request.form.get('profile_image')
- print(request.form)
- if is_arg_empty(facebook_id) or is_arg_empty(name) or is_arg_empty(profile_image):
- return return_empty_parameter()
- curs = conn.cursor()
- sql = "select * from user where facebook_id=%s"
- curs.execute(sql, facebook_id)
- rows = curs.fetchall()
- print(rows)
- if len(rows) == 0:
- sql = "insert into user (name,facebook_id,profile_image) values (%s, %s, %s)"
- curs.execute(sql, (name, facebook_id, profile_image))
- conn.commit()
- return Response(
- response=json.dumps(
- {
- "message":"signup success"
- }
- ),
- status=200,
- mimetype='application/json'
- )
- return Response(
- response=json.dumps(
- {
- "message":"login success"
- }
- ),
- status=200,
- mimetype='application/json'
- )
- @app.route("/api/post", methods=['POST'])
- def create_post():
- user_id = request.form.get('user_facebook_id')
- content = request.form.get('content')
- file = request.files.get('image')
- if is_arg_empty(user_id) or is_arg_empty(content) or is_arg_empty(file):
- return return_empty_parameter()
- filetype = file.filename.split(".")[-1]
- file.filename = id_generator() + "." + filetype
- file.save('./img/' + file.filename)
- curs = conn.cursor()
- sql = "select * from user where facebook_id=%s"
- curs.execute(sql, user_id)
- rows = curs.fetchall()
- if len(rows) == 0:
- return Response(
- response=json.dumps(
- {
- "message":"user not found",
- "user_facebook_id":user_id
- }
- ),
- status=404,
- mimetype='application/json'
- )
- sql = "insert into post (user_id,content,content_image,date) values (%s, %s, %s, %s)"
- curs.execute(sql, (user_id, content, file.filename, int(time.time())))
- conn.commit()
- return Response(
- response=json.dumps(
- {
- "message":"write success"
- }
- ),
- status=200,
- mimetype='application/json'
- )
- def id_generator(size=20, chars=string.ascii_uppercase + string.digits):
- return ''.join(random.choice(chars) for _ in range(size))
- @app.route("/api/post", methods=['GET'])
- def get_post():
- if random.randint(0,10) ==1:
- return Response(
- response=json.dumps(
- {
- 'message':'unexpected error'
- }
- ),
- status=500,
- mimetype='application/json'
- )
- curs = conn.cursor()
- sql = "select * from post join user on post.user_id = user.facebook_id order by date desc"
- curs.execute(sql)
- rows = curs.fetchall()
- result = []
- for row in rows:
- result.append(
- {
- 'post_id':row[0],
- 'content':row[2],
- 'content_image':"/img/"+row[3],
- 'date':int(row[4]),
- 'writer':{
- 'facebook_id':row[1],
- 'name':row[6],
- 'profile_image':row[8]
- }
- }
- )
- return Response(
- response=json.dumps(result),
- status=200,
- mimetype='application/json'
- )
- def convertToTimestamp(date):
- fmt = '%Y-%m-%d %H:%M:%S %z'
- return timegm(datetime.strptime(date, fmt).utctimetuple())
- def is_arg_empty(arg):
- if arg == None:
- return True
- else:
- return False
- def return_empty_parameter():
- return Response(
- response=json.dumps(
- {
- 'message': 'missing parameters'
- }
- ),
- status=400,
- mimetype='application/json'
- )
- if __name__ == "__main__":
Add Comment
Please, Sign In to add comment