본문 바로가기

코딩(Coding)

Python을 사용하여 처음부터 분석 웹 사이트 만드는 방법

반응형

Python을 사용하여 처음부터 분석 웹 사이트 만드는 방법

 

블로그, 대시 애플리케이션 및 Jupyter 노트북을 위한 공간이 포함된 Flask 웹 사이트 템플릿

작가의 웹사이트 스크린샷

블로그를 만들고 대시보드를 보여주고 jupyter 노트북을 실행할 수 있는 웹사이트를 만들고 싶었습니다.

Dash 응용 프로그램 자체를 만드는 방법을 찾았지만 세 가지를 모두 설명하는 응용 프로그램을 찾을 수 없었습니다. 그것이 제가 오늘 제공하고자 하는 것입니다.

템플릿 코드는 여기그리고 이 템플릿을 사용하여 웹사이트.

나는 원래 Dash로 작성된 이 웹사이트를 디자인했으며, 아래에 표시된 대시보드만 사용했습니다.

작가 홈페이지 캡처

이 대시보드는 Dash 및 Plotly를 사용하여 생성되었습니다.

불행히도 마크다운 블로그 게시물을 렌더링할 수 없다는 것을 깨달았을 때 웹사이트를 만드는 다른 방법을 찾아야 했습니다.

그런 다음 인터넷 검색을 시작하여 마크다운을 렌더링하고 대시보드에 Dash를 활용하는 예제를 찾아야 했지만 찾을 수 없었습니다.

대신 내가 찾은 것은 James Harding의 환상적인 기사(링크)로, 메인 웹사이트를 설정하고 대시보드를 웹사이트에 맞추는 몇 가지 트릭을 추가했습니다.

이 모든 코드와 설정이 여기에 제공됩니다. 기본 구조는 이렇습니다.

.
|-- virtualenv/
|-- main/
| |-- content
| | |-- posts
| | | `-- about_website.md
| |-- dash
| |-- data
| |-- static
| |-- templates
| |-- __init__.py
|-- app.py
|-- Dockerfile
|-- .pylintrc
`-- requirements.txt

__init__.py플라스크 서버가 설정되고 플랫 페이지 및 대시보드 구성 요소가 등록됩니다.

웹사이트는 정적 파일과 HTML 파일로 나뉩니다. 웹사이트에 표시되는 이미지나 CSS 및 javascript 파일은 정적 폴더에 있고 HTML 파일은 템플릿 폴더에 있습니다.

응용 프로그램은 다음에서 호출됩니다. app.py, create_app() 에 위치한 기능 __init__.py 파일.

이 기능에서 내가 가장 먼저 한 일은 서버를 설정하고 정적 파일이 내 웹사이트의 고유한 특성을 제공하는 위치를 식별하는 것입니다.

참고: 추가하지 않고 static_url_path 매개변수로 Flask 서버는 CSS 및 js 파일을 찾을 위치를 모를 수 있습니다. 해당 파일을 호출할 때 404가 발생하면 이것이 문제일 수 있습니다.

Flask 서버 등록 후 대시 구성 요소와 Flatpages 마크다운 페이지를 추가할 수 있습니다.

__init__.py함수 register_dashapps 아래에 나열되어 있습니다.

일반 Dash와 이 기능의 한 가지 주요 차이점은 추가 플라스크 컨텍스트입니다. 대시보드는 이제 플라스크를 통해 실행할 수 있습니다. app_context(). 이 추가 단계가 추가된 이유에 대해 자세히 알고 싶으십니까? 여기 링크가 있습니다.

대부분의 블로그 게시물은 게시물 콘텐츠를 저장하는 일반적인 접근 방식인 관계형 데이터베이스에 콘텐츠를 유지합니다.

한편, 내 블로그 게시물은 단순하고 "평평"하며 소스의 파일에서 가져옵니다. Flatpages는 이 사용 사례에 맞게 완벽하게 설계되었으며 마크다운을 HTML로 변환하거나 코드 변환하는 플라스크 앱의 구성에 렌더러를 빠르게 추가합니다.

또한 게시물을 가리키는 웹사이트 경로를 등록해야 합니다.

나머지 블로그 코드는 James Harding이 자세히 설명했습니다.

마지막 단계는 jupyter 노트북을 추가하는 것입니다.

리디렉션을 추가하기 전에 __init__.py 파일을 만들려면 웹 사이트에서 Jupyter 노트북에 액세스할 수 있는지 확인해야 합니다. 저는 nbviewer를 사용하여 이 Jupyter 노트북을 무료로 호스팅할 수 있었습니다. 이 URL은 아래 예와 같이 리디렉션()에서 사용할 수 있습니다.

이 기사가 Flask, Dash 및 Jupyter Notebook을 하나의 아름다운 웹사이트로 결합하는 방법에 대한 정보를 제공하기를 바랍니다. 질문이 있으면 알려주세요.

반응형