우리는fastAPI로Django 강좌를 만들고 반응하고 있다.fastAPI 프로젝트를 설정하자!
일단 네가 요령을 터득하면, 너는 새로운 단점을 구축하고 실현할 수 있다
복잡한 업무 논리.그러나 Django라는 보다 관점적인 틀에서 비롯되었을 때 처음에는 안정을 파괴할 수 있다
더 많은 기존 기능을 제공합니다.
그래서 나는 그것이 매우 재미있을 것이라고 생각한다. (게다가 매우 재미있다.)Django 튜토리얼에서 유명한 여론조사 앱을 새로 만들었지만 이번에는Fast API를 사용했다
그리고 리액션!여러 부분으로 구성된 이 시리즈에서 나는 가능한 한 원작과 같은 경로를 따를 것이다. 비록 내가 분열될 수도 있지만.
정보의 과부하를 피하기 위해 일부 부분을 두 부분으로 나누다.
오늘은 제1부분: 프로젝트 설정, 여론조사 응용 프로그램 만들기, 첫 번째django 보기 경로 조작
이 부분의 코드는 사용할 수 있습니다here. 하지만 인코딩을 권장합니다!
🔧 프로젝트 작성
FastapI는 설치하기 쉬워요. 사실상FastapI 프로그램을 실행하는 데 필요한 것은 단일 파일의 실례화일 뿐이에요.
주 응용 프로그램과 그것을 실행하는 ASGI 작업 프로그램.물론 우리는 더욱 진일보할 것이다.저희 도망갑니다.
응용 프로그램은 Docker 컨테이너에 있으므로 컴퓨터에 설치해야 합니다.
부두 일꾼 형상
먼저 작업 디렉토리의 루트 디렉토리에
Dockerfile
를 생성하고 다음 설명을 작성합니다.
FROM python:3.9
WORKDIR /app
# Install Poetry
RUN curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | POETRY_HOME=/opt/poetry python && \
cd /usr/local/bin && \
ln -s /opt/poetry/bin/poetry && \
poetry config virtualenvs.create false
# Copy using poetry.lock* in case it doesn't exist yet
COPY ./app/pyproject.toml ./app/poetry.lock* /app/
RUN poetry install --no-root --no-dev
COPY ./app /app
CMD ["uvicorn", "app.main:app", "--reload", "--host", "0.0.0.0", "--port", "80"]
이것은 약간의 평론이 필요하다.의존 항목의 설치 방식이 좀 이상할 수 있습니다.여기서 우리는
poetry
를 패키지 관리자로 사용하기 때문에 먼저 그것을 설치한 다음에 설치해야 한다그리고
install
를 실행하지만 가상 환경--no-root
을 만들지 않습니다.이런 방법의 장점은 네가 사용할 수 있다는 데 있다개발 환경에서도 마찬가지
pyproject.toml
이기 때문에 정적 분석 도구 등 도구는 같은 의존항을 사용한다.제작 중입니다.설정은 우리가 여러 단계의 건설과 포기
poetry
를 만들어 더욱 날씬한 이미지를 가지게 할 수 있다.app
폴더는 코드가 있는 다음 절에 생성됩니다.마지막으로, 우리가 uvicorn에 전달한
--reload
옵션을 주의하십시오. 이것은 우리가 일을 할 수 있도록 허락합니다. 매번 노동자를 다시 시작할 필요가 없습니다.달라지다
잠시 후 용기를 시작할 것입니다. 우선 프로그램을 초기화해야 합니다.
fastapi 응용 프로그램
우선 코드가 있는 폴더를 만듭니다:
mkidr app
이제 내가 말한 바와 같이, 우리는 주 노드를 하나만 만들 수 있다.만약 우리가 생각한다면py 파일을 사용할 수 있습니다.하지만 이 시리즈의 주제에 충실하기 위해django 프로그램과 유사한 디렉터리 구조를 만듭니다.이것이 바로 우리가 두 번째
app
디렉터리를 만드는 이유입니다. 이것은 우리의'메인 디렉터리'가 될 것입니다.응용 프로그램.잠시 후
polls
디렉터리를 만들 것입니다.이제
mkdir app/app
폴더를 만들고 main.py
파일을 만들기만 하면 됩니다.너의 디렉터리 구조는 지금 마땅히이렇게
완벽해!현재 필수 과목
hello world !
이 다가오면서 안전벨트를 매세요.main.py
에 다음 줄을 쓰십시오.
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def root():
return {"message": "Hello World"}
이것은 프로그램을 초기화하고 우리의 첫 번째 path operation 를 만들 것입니다.이것의사한테 직접 받은 거야!그러나 우리는 용기를 가동해야 하기 때문에 아직 소식을 볼 수 없다.우리는 곧 도착하는데,
다음 절로 가자!
응용 프로그램 시작
프로그램을 시작하기 전에 그림을 만들어야 합니다.프로젝트에서 실행되는 루트 디렉토리
docker build -t poll-app .
현재 우리는 용기를 가동할 수 있다. docker run -it -p 80:80 -v "$(pwd)"/app:/app poll-app
.이것도 늘어요.프로그램 디렉터리이기 때문에 파일을 편집할 때마다 다시 만들 필요가 없습니다.
우리는 지금 우리의 단점을 테스트할 준비를 하고 있다.브라우저에서
localhost
로 이동하여 보십시오!... 크노비 장군
이것은 이미 훌륭하지만, 가장 좋은 것은Fast API가 내장된 것과 시장을 뒤흔드는 개방적인api 설정을 가지고 있다는 것이다
자체적입니다.이것은
localhost/docs
로 이동하면 다음과 같은 내용을 볼 수 있다는 것을 의미한다.FastapI 는 자동으로 엔드포인트 문서를 생성합니다!만약 네가 나에게 묻는다면 API의 기능은 매우 간결하다.
📜 투표 응용 프로그램 만들기
현재
Hello world !
는 이미 유행이 지났습니다. (저는 그것을 당신의 개인 소장품에 추가하는 것을 건의합니다.) 우리는 실제 여론조사 응용 프로그램에 들어가도록 하겠습니다.... 로 삼다내가 전에 말했듯이, 우리는 메인 프로그램 옆에
polls
디렉터리를 만들 것이다.완료되면 endpoints.py
라는 파일을이 새 폴더에서 항목의 구조는 다음과 같아야 합니다.
관련
__init__.py
파일을 만드는 것을 잊지 마십시오. 그러면 폴더가 Python 모듈로 식별됩니다.이제 여론조사 프로그램에 색인을 만듭시다.이 색인은 잠시 후에 우리 데이터베이스에서 사용할 수 있는 여론 조사를 열거할 것이지만, 지금은 간단한 소식으로 되돌아갈 것이다.다음 코드를
polls/endpoints.py
에 추가합니다.
from fastapi import APIRouter
router = APIRouter()
@router.get("/")
async def index():
return {"message": "polls index"}
여기에서 우리는 APIrouter 를 사용하여 경로 조작을 설명합니다.그것의 작업 원리와전화번호
FastaAPI()
.지금 우리가 해야 할 일은 main.py
에서 단점을 성명하는 것이다.
app.include_router(polls.endpoints.router, prefix="/polls")
접두사는 폴링 끝에서 오는 모든 경로가 폴링으로 시작됨을 나타냅니다.당신의 여론조사 색인은 현재 두 사이트에서 사용할 수 있을 것이다localhost/polls
와 흔들림 문서 중!어디 보자!위대하다우리의 여론조사 지수는 효과가 있다. 비록 아직 아무런 결과도 돌아오지 않았지만, 우리는 2부분에서 이에 대해 설명할 것이다.
결론
이것은 첫 번째 부분입니다. 만약 당신이 유용하다고 생각한다면 저에게 알려 주세요.두 번째 부분에서 우리는 어떻게 실제 데이터베이스를 구축하여 우리의 여론 조사를 저장하는지 보게 될 것이다!
Reference
이 문제에 관하여(우리는fastAPI로Django 강좌를 만들고 반응하고 있다.fastAPI 프로젝트를 설정하자!), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/jbrocher/building-the-poll-app-from-django-tutorial-with-fastapi-and-react-4m3h텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)