Flask Restful을 사용하여 Flask의 사용자 지정 경로
a) 사용자 지정 경로 정의
b) 경로, 컨트롤러, 모델, 검증자 등을 각각의 폴더로 분리
나중에 Flask와 관련하여 제 아키텍처 스타일을 이해하는 데 도움이 되는 게시물을 올릴 것입니다.
사용자 지정 경로 정의
예를 들어 가상의 블로그 사이트를 살펴보겠습니다. 귀하의 프로젝트에 사용자, 댓글 및 게시물 폴더가 있다고 가정합니다. 그 이유는 게시물과 사용자에 대한 모델, 경로, 컨트롤러 등을 분리하고 싶다는 사실에 신경이 쓰이기 때문입니다. 사용자 컨트롤러는 확실히 우려하지만 이에 국한되지는 않습니다. 등록, 로그인, 암호 분실, 이메일 변경 등 게시물에 대한 게시물에는 편집 게시물, 게시물 삭제, 게시물 작성 등이 포함되지만 이 트랜잭션을 하나의 파일로 클러스터링하면 확실히 지칠 것이라는 점에 동의할 것입니다. 가능하지 않다면 당신을 미치게 만들 것입니다. 또한 Flask-Restful은 알려진 HTTP 동사인 "GET", "POST"등만 지원하므로 각 게시물에 대해 새 클래스를 정의하고 각각 작업을 삭제하는 것은 관리할 수 없는 것처럼 들립니다. 로그인 및 등록 트랜잭션을 달성하려면 아래와 같이 다른 클래스가 필요하다고 생각할 수 있습니다(routes.py 파일에서).
routes.py
class LoginView(Resource):
logging.basicConfig(level=logging.INFO)
logging.info("Entered the LoginView...")
def login(self):
print("\n\t Login route....")
class RegisterView(Resource):
logging.basicConfig(level=logging.INFO)
logging.info("Entered the RegisterView...")
def register(self):
print("\n\t Register route....")
이 문제는 아래와 같이 파이썬 방식으로 간단하게 해결할 수 있습니다.
from flask_restful import (
Resource,
request
)
import logging
from ..models.models import Users
class AuthViews(Resource):
logging.basicConfig(level=logging.INFO)
logging.info("Entered the auth views...")
def login(self):
print("\n\t Login route....")
def register(self):
print("\n\t Register route....")
def post(self):
print("\n\t Login-Data: ", request.data)
print("\n\t Login-Data: ", request.url)
url = request.url
if "login" in url:
login = self.login()
elif "register" in url:
register = self.register()
elif "forgot-password" in url:
register = self.forgot_password()
else:
etc....
auth_routes = ["/auth/register", "/auth/login"]
그런 다음 app.py 파일에서 다음과 같이 리소스를 등록합니다.
...
from routes.routes import AuthViews, auth_routes
app = Flask(__name__)
api = Api(app)
api.add_resource(AuthViews, *auth_routes)
감사. 다음으로 PyMongo를 사용하여 모델을 정의하는 방법을 보여 드리겠습니다.
Reference
이 문제에 관하여(Flask Restful을 사용하여 Flask의 사용자 지정 경로), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/chukwunazaekpere/custom-routes-in-flask-using-flask-restful-4imj텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)