다음을 통해 공유


Python 웹 애플리케이션 프로젝트 템플릿

Visual Studio의 Python은 다양한 프레임워크를 처리하도록 구성할 수 있는 디버그 시작 관리자 및 프로젝트 템플릿을 통해 Bottle, Flask 및 Django 프레임워크에서 웹 프로젝트 개발을 지원합니다. 이러한 템플릿에는 필요한 종속성을 선언하는 requirements.txt 파일이 포함됩니다. 이러한 템플릿 중 하나에서 프로젝트를 만들 때 이 문서의 뒷부분에 나오는 설치 요구 사항에서 설명한 대로 Visual Studio에서 종속 패키지를 설치하라는 메시지가 표시됩니다.

Pyramid와 같은 다른 프레임워크에 대한 일반 웹 프로젝트 템플릿을 사용할 수도 있습니다. 이 경우, 프레임워크가 템플릿과 함께 설치되지 않습니다. 대신 프로젝트에 사용 중인 환경에 필요한 패키지를 설치합니다. 자세한 내용은 Python 환경 창 - 패키지 탭을 참조하세요.

프로젝트 템플릿 옵션

툴바 메뉴에서 파일>새로 만들기>프로젝트를 선택하고 템플릿을 사용하여 새 프로젝트를 만듭니다. 새 프로젝트 만들기 대화 상자에서 템플릿 목록을 필터링하여 Python 웹 프로젝트에 사용할 수 있는 옵션을 확인할 수 있습니다. 검색창에 키 용어를 입력하거나 필터 드롭다운 메뉴를 사용하여 Python을 언어로 선택하고 을 프로젝트 유형으로 선택합니다.

Visual Studio에서 Python 웹앱의 옵션을 표시하도록 필터링된 템플릿을 포함하는 새 프로젝트 만들기 대화 상자를 보여주는 스크린샷.

원하는 템플릿을 선택한 후 프로젝트 및 솔루션의 이름을 제공하고 솔루션 디렉터리와 Git 리포지토리에 대한 옵션을 설정합니다.

일반 웹 프로젝트 템플릿은 코드가 없는 빈 Visual Studio 프로젝트를 제공하며, Python 프로젝트라는 사실 외에 다른 사항은 가정하지 않습니다. 다른 템플릿은 Bottle, Flask 또는 Django 웹 프레임워크를 기반으로 하며, 다음 섹션에서 설명한 대로 세 개의 범주로 그룹화됩니다. 이러한 템플릿으로 만든 앱에는 충분한 코드가 포함되어 로컬에서 앱을 실행하고 디버그할 수 있습니다. 또한 각 템플릿에서는 프로덕션 웹 서버에서 사용하는 데 필요한 WSGI 앱 개체(python.org)를 제공합니다.

빈 그룹

모든 빈 <프레임워크> 웹 프로젝트 템플릿은 requirements.txt 파일에 선언된 거의 최소한의 상용구 코드와 필요한 종속성을 사용하여 프로젝트를 만듭니다.

템플릿 설명
빈 Bottle 웹 프로젝트 매우 짧은 인라인 페이지 템플릿을 사용하여 <name> 값을 에코하는 /hello/<name> 페이지 및 / 위치의 홈페이지를 포함하는 최소 앱을 app.py 파일에서 생성합니다.
빈 Django 웹 프로젝트 코어 Django 사이트 구조를 사용하지만 Django 앱은 포함되지 않은 Django 프로젝트를 생성합니다. 자세한 내용은 Django 템플릿Django 알아보기 1단계를 참조하세요.
빈 Flask 웹 프로젝트 / 위치에 대한 하나의 "Hello World!" 페이지를 포함하는 최소 앱을 생성합니다. 이 앱은 빠른 시작: Visual Studio를 사용하여 첫 번째 Python 웹앱 만들기의 자세한 단계를 수행한 결과와 유사합니다. 자세한 내용은 Flask 1단계 학습을 참조하세요.

웹 그룹

모든 <프레임워크> 웹 프로젝트 템플릿은 선택한 프레임워크와 관계없이 동일한 디자인으로 시작 웹앱을 만듭니다. 앱에는 부트스트랩을 사용하는 반응형 디자인 및 탐색 메뉴 표시줄과 함께 홈, 정보 및 연락처 페이지가 포함됩니다. 각 앱은 정적 파일(CSS, JavaScript 및 글꼴)을 제공하도록 적절하게 구성되며, 프레임워크에 적합한 페이지 템플릿 메커니즘을 사용합니다.

템플릿 설명
Bottle 웹 프로젝트 정적 파일이 static 폴더에 포함되고 app.py 파일의 코드를 통해 처리되는 앱을 생성합니다. 개별 페이지의 라우팅은 routes.py 파일에 포함되어 있습니다. views 폴더에는 페이지 템플릿이 포함되어 있습니다.
Django 웹 프로젝트 세 개의 페이지, 인증 지원 및 SQLite 데이터베이스(데이터 모델 없음)를 사용하여 Django 프로젝트 및 Django 앱을 생성합니다. 자세한 내용은 Django 템플릿Django 알아보기 4단계를 참조하세요.
Flask 웹 프로젝트 정적 파일이 static 폴더에 포함되는 앱을 생성합니다. views.py 파일의 코드는 templates 폴더에 포함된 Jinja 엔진을 사용하는 페이지 템플릿을 사용하여 라우팅을 처리합니다. runserver.py파일은 시작 코드를 제공합니다.

설치 요구 사항

프레임워크별 템플릿에서 프로젝트를 만들 때 Visual Studio에서는 pip를 사용하여 필요한 패키지를 설치할 수 있는 대화 상자를 제공합니다. 웹 사이트를 게시할 때 올바른 종속성이 포함되도록 보장하려면 웹 프로젝트에 대해 가상 환경을 사용하는 것이 좋습니다.

Visual Studio에서 프로젝트 템플릿의 패키지를 설치하는 대화 상자를 보여주는 스크린샷.

소스 제어를 사용하는 경우 가상 환경은 requirements.txt 파일로만 다시 만들 수 있기 때문에 일반적으로 가상 환경 폴더를 생략합니다. 폴더를 제외하는 가장 좋은 방법은 먼저 직접 설치를 선택한 다음, 가상 환경을 만들기 전에 자동 커밋을 사용하지 않도록 설정하는 것입니다. 자세한 내용은 Django 자습서 학습Flask 자습서 학습에서 Git 컨트롤 검사를 참조하세요.

Microsoft Azure App Service에 배포할 때는 사이트 확장으로 Python 버전을 선택하고 패키지를 수동으로 설치합니다. 또한 Azure App Service는 Visual Studio에서 배포할 때 requirements.txt 파일에서 패키지를 자동으로 설치하지 않으므로aka.ms/PythonOnAppService의 구성 세부 정보를 따릅니다.

디버깅 옵션

디버깅을 위해 웹 프로젝트를 열면 Visual Studio는 임의 포트에서 로컬 웹 서버를 시작하고 해당 주소 및 포트로 기본 브라우저를 엽니다. 추가 옵션을 지정하려면 솔루션 탐색기에서 프로젝트를 마우스 오른쪽 단추로 클릭하고 속성을 선택합니다. 속성 페이지에서 디버그 탭을 선택합니다.

Visual Studio에서 일반 웹 템플릿의 웹 시작 관리자 속성을 보여주는 스크린샷.

프로젝트 디버깅을 위한 세 가지 공통 구성 옵션 그룹이 있습니다. 실행 그룹에는 다음 속성이 포함됩니다.

  • 경로 검색, 스크립트 인수, 인터프리터 경로인터프리터 인수 옵션은 일반 디버깅과 동일합니다.
  • 시작 URL에서는 브라우저에서 열리는 URL을 지정합니다. 기본 위치는 localhost입니다.
  • 포트 번호에서는 URL에 지정된 항목이 없는 경우 사용할 포트를 식별합니다(기본값으로 Visual Studio에서 자동으로 선택). 이 설정을 사용하면 로컬 디버그 서버에서 수신 대기하는 포트를 구성하기 위해 템플릿에서 사용하는 SERVER_PORT 환경 변수의 기본값을 재정의할 수 있습니다.
  • 환경 목록에서는 생성된 프로세스에서 설정할 변수를 정의합니다. 형식은 줄 바꿈으로 구분된 <NAME>=<VALUE> 쌍의 목록입니다.

서버 실행 명령서버 디버그 명령 그룹의 속성에 따라 웹 서버가 시작되는 방식이 결정됩니다. 많은 프레임워크에서는 현재 프로젝트 외부에서 스크립트를 사용해야 하기 때문에 여기에서 스크립트를 구성할 수 있으며 시작 모듈의 이름을 매개 변수로 전달할 수 있습니다.

  • 명령은 Python 스크립트(*.py 파일), 모듈 이름(python.exe -m module_name에서와 같이) 또는 단일 코드 줄(python.exe -c "code"에서와 같이)일 수 있습니다. 드롭다운 상자의 값은 의도된 형식을 나타냅니다.
  • 인수 목록은 명령줄에서 명령 다음에 전달됩니다.
  • 다시, 환경 목록에서는 포트 번호 및 검색 경로와 같이 환경을 수정할 수 있는 모든 속성 후에 설정할 변수를 정의합니다. 이러한 변수 값은 다른 속성 값을 덮어쓸 수 있습니다.

MSBuild 구문으로 모든 프로젝트 속성 또는 환경 변수를 지정할 수 있습니다(예: $(StartupFile) --port $(SERVER_PORT)). $(StartupFile)은 시작 파일에 대한 상대 경로이며 {StartupModule}은 시작 파일의 가져올 수 있는 이름입니다. $(SERVER_HOST)$(SERVER_PORT)시작 URL포트 번호 속성으로 자동으로 설정되거나 환경 속성으로 설정되는 일반 환경 변수입니다.

참고 항목

서버 실행 명령의 값은 디버그>서버 시작 명령 또는 바로 가기 키 Ctrl+F5와 함께 사용됩니다. 디버그 서버 명령 그룹의 값은 디버그>디버그 서버 시작 명령 또는 F5와 함께 사용됩니다.

샘플 Bottle 구성

Bottle 웹 프로젝트 템플릿은 필요한 구성을 수행하는 상용구 코드를 포함합니다. 그러나 가져온 bottle 앱에는 이 코드가 포함되어 있지 않을 수 있으며 이 경우 다음 설정으로 설치된 bottle 모듈을 사용하여 앱을 시작합니다.

  • 서버 실행 명령 그룹:

    • 명령: bottle(모듈)
    • 인수: --bind=%SERVER_HOST%:%SERVER_PORT% {StartupModule}:app
  • 서버 디버그 명령 그룹:

    • 명령: bottle(모듈)
    • 인수 --debug --bind=%SERVER_HOST%:%SERVER_PORT% {StartupModule}:app

--reload 옵션은 디버깅에 Visual Studio를 사용할 때는 권장되지 않습니다.

샘플 Pyramid 구성

Pyramid 앱은 현재 pcreate 명령줄 도구를 사용하여 최적으로 생성됩니다. 앱을 만들었으면 기존 Python 코드에서 템플릿을 사용하여 가져올 수 있습니다. 가져온 후에 일반 웹 프로젝트 사용자 지정을 선택하여 옵션을 구성합니다. 이러한 설정에서는 가상 환경의 ..\env 위치에 Pyramid가 설치되어 있다고 가정합니다.

  • 실행 그룹:

    • 포트 번호: 6543(또는 .ini 파일에 구성된 모든 항목)
  • 서버 실행 명령 그룹:

    • 명령: ..\env\scripts\pserve-script.py(스크립트)
    • 인수: Production.ini
  • 서버 디버그 명령 그룹:

    • 명령: ..\env\scripts\pserve-script.py(스크립트)
    • 인수: Development.ini

Pyramid 앱은 일반적으로 프로젝트 루트 아래의 폴더이므로 프로젝트의 작업 디렉터리 속성을 구성해야 할 수 있습니다.

기타 구성

공유하려는 다른 프레임워크 설정이 있거나 다른 프레임워크 설정을 요청하려면 GitHub에서 문제를 엽니다.