Masonite로 작업하는 방법 - 웹 프레임워크와 같은 Python Rails/Laravel

우리 모두는 Ruby on Rails와 API와 웹사이트를 쉽게 만들 수 있다는 점을 좋아합니다. 파이썬에서 Django는 일반적으로 많은 프로젝트에 사용되는 프레임워크를 포함하는 주요 배터리였습니다. 문제는 Django가 다른 언어에 대한 레일세스크 접근 방식 프레임워크와 상당히 다른 패턴을 만드는 많은 단점이 있다는 것입니다. Masonite는 Python 언어에서의 경험과 같은 훨씬 더 많은 레일을 제공합니다. 사용해 봅시다!

전제 조건


  • 파이썬 3.6

  • 설정


  • 빈 폴더에서 실행python -m venv venv하여 새 가상 환경을 만든 다음source ./venv/bin/activate 활성화합니다.
  • pip install masonite 석조석 설치
  • craft를 실행하여 설치되었는지 확인합니다(craft는 모든 masonites 생성기 및 도구를 트리거하는 데 사용할 명령입니다).
  • craft new를 실행하여 현재 있는 폴더에 새 프로젝트를 생성합니다.
  • craft serve를 실행하여 기본적으로 포트 8000
  • 으로 서버를 실행합니다.

    일부 경로 생성



    폴더의 레이아웃이 레일이나 Laravel 폴더 구조와 매우 유사하다는 것을 알 수 있습니다. 경로를 추가하려면 서버에 다른 요청이 있을 때 실행되는 메서드가 있는 클래스인 컨트롤러를 만들어야 합니다.
    craft controller first
    이렇게 하면 두 가지 방법으로 app/http/controllers에 컨트롤러 파일이 생성됩니다.
  • __init__ 메서드가 호출되기 전에 작업을 수행하는 데 사용할 수 있는 클래스 생성자, 이 경우 요청을 보유하는 클래스 속성을 생성하여 다른 모든 메서드에서 사용할 수 있도록 합니다.

  • 다음 방법도 포함됩니다.

        def show(self, view: View):
            pass
    


    JSON API를 만드는 데 중점을 둘 것이기 때문에 View 매개변수(html 보기를 제공하는 데 사용됨)가 실제로 필요하지 않습니다. 파이썬 사전이나 목록을 반환할 수 있으며 json 응답으로 처리됩니다.

        def show(self):
            return {"look": "I returned some json!"}
    


    메소드 이름은 식별할 수 있는 방법 외에는 중요하지 않으므로 현재 원하는 대로 호출하거나 계속 표시할 수 있습니다.

    컨트롤러를 경로에 연결



    경로는 특정 컨트롤러 기능을 가리키는 URL 끝점과 메서드의 조합입니다. 이것은 route/web.py에서 처리됩니다. 우리는 일련의 경로를 가지고 있습니다.

    """Web Routes."""
    
    from masonite.routes import Get, Post
    
    ROUTES = [
        Get("/", "WelcomeController@show").name("welcome"),
    ]
    


    본질적으로 기존 경로는 서버가 "/"에 대한 Get 요청을 받으면 WelcomeController의 show 함수에서 응답을 처리한다고 말합니다.

    컨트롤러에 대한 경로를 추가해 보겠습니다.

    """Web Routes."""
    
    from masonite.routes import Get, Post
    
    ROUTES = [
        Get("/", "WelcomeController@show").name("welcome"),
        Get("/first", "firstController@show").name("first"),
    ]
    


    서버가 실행 중인지 확인하고 localhost:8000/first로 이동하면 json 메시지가 표시되어야 합니다! 그렇게 어렵지 않았습니다!

    메이소나이트로 더 깊이 들어가다



    Masonite는 데이터베이스 마이그레이션, 모델 생성 등을 위해 사용할 수 있는 도구의 세계를 가지고 있습니다. 모두 Rails 및 Laravel과 같은 프레임워크에서 낯설게 느껴지지 않아야 하는 패턴을 사용합니다. 그것을 시도하십시오, 나는 당신이 그것을 좋아할 것이라고 생각합니다!

    좋은 웹페이지 즐겨찾기