Python-Framework/Python-Framework__Flask

flask restful crud

말하는감자 2019. 7. 25. 13:22

필요한 리소스 설치

pip install flask
pip install flask_restful
pip install pymysql

 

wsgi.py

# -*- coding: utf-8 -*-
from api import *

if __name__ == "__main__":
    app.run(host="0.0.0.0", debug=True, port=5000)

 

__init__.py

from flask_restful import Resource, Api, reqparse
from flask import Flask
from api import database
from api import new_member, update_member, delete_member, get_member

app = Flask(__name__)
api = Api(app)

class MemberManagementSystem(Resource):
    def post(self):
        try:
            parser = reqparse.RequestParser()
            parser.add_argument('id', type=str)
            parser.add_argument('password', type=str)
            parser.add_argument('email', type=str)
            parser.add_argument('member_code', type=str)
            parser.add_argument('member_kinds', type=str)
            args = parser.parse_args()

            id = args['id']
            password = args['password']
            email = args['email']
            member_code = args['member_code']
            member_kinds = args['member_kinds']
            cursor = database.connect()

            if member_code in ['new']:
                new_member.management(id, password, email, member_kinds, cursor)
            elif member_code in ['update']:
                update_member.management(id, password, email, member_kinds, cursor)
            elif member_code in ['delete']:
                delete_member.management(id, password, email, member_kinds, cursor)
            elif member_code in ['get']:
                get_member.management(id, password, email, member_kinds, cursor)


        except Exception as e:
            print(e)

api.add_resource(MemberManagementSystem, '/')

 

database.py

import pymysql.cursors

select_stmt = "SELECT * FROM members WHERE id=%s"

def connect():
    conn = pymysql.connect(host="localhost", user="root", password="123456", db="mysql", charset="utf8", cursorclass=pymysql.cursors.DictCursor, autocommit=True)
    cur = conn.cursor()
    return cur

def insert_member(id, password, email, member_kinds, cursor):

    cursor.execute(select_stmt, (id))

    if cursor.rowcount == 0:
        cursor.execute("INSERT INTO members VALUES(default, %s, %s, %s, %s)", (id, password, email, member_kinds))
    else:
        result = cursor.fetchone()
        cursor.execute("UPDATE members SET password=%s, email=%s, member_kinds=%s WHERE id=%s", (password, email, member_kinds, result["id"]))

    cursor.connection.commit()
    return cursor

def get_member(id, password, email, member_kinds, cursor):

    cursor.execute(select_stmt, (id))

    return cursor.fetchone()

def update_member(id, password, email, member_kinds, cursor):
    cursor.execute(select_stmt, (id))
    if cursor.rowcount != 0:
        result = cursor.fetchone()
        cursor.execute("UPDATE members SET password=%s, email=%s, member_kinds=%s WHERE id=%s",
                       (password, email, member_kinds, result["id"]))

    cursor.connection.commit()
    return cursor

def delete_member(id, password, email, member_kinds, cursor):
    cursor.execute(select_stmt, (id))
    if cursor.rowcount != 0:
        result = cursor.fetchone()
        cursor.execute("DELETE FROM members WHERE id=%s", result["id"])

 

new_member.py

from api import database

def management(id, password, email, member_kinds, cursor):

    insert_member = database.insert_member(id, password, email, member_kinds, cursor)

 

update_member.py

from api import database

def management(id, password, email, member_kinds, cursor):

    update_member = database.update_member(id, password, email, member_kinds, cursor)

 

delete_member.py

from api import database

def management(id, password, email, member_kinds, cursor):

    delete_member = database.delete_member(id, password, email, member_kinds, cursor)

 

get_member.py

from api import database

def management(id, password, email, member_kinds, cursor):

    get_member = database.get_member(id, password, email, member_kinds, cursor)

 

postman request

'Python-Framework > Python-Framework__Flask' 카테고리의 다른 글

서버에서 flask path 깨질때  (0) 2019.10.21
Flask api query string  (0) 2019.09.25
flask_restful  (0) 2019.07.24
Flask pymysql + RestApi  (0) 2019.04.26
flask에서 html 페이지 띄우기  (0) 2019.03.20