Flask 보기에서 직접 프런트엔드를 빌드하는 방법
6948 단어 javascriptflaskpythonwebdev
네, Flask는 주로 백엔드 개발에 사용됩니다. 그러나 Flask에서는 일반적으로 html 파일인 템플릿을 만듭니다. 내 애플리케이션에 거대한 프런트엔드가 필요하지 않고 뷰에 직접 내 프런트엔드를 구축하려는 경우 좋지 않을까요?
Flask에 익숙하지 않은 분들을 위해 Flask은 Python으로 작성된 마이크로 웹 프레임워크입니다. Flask는 매우 가볍고 사용자가 단 한 페이지의 코드로 웹앱을 만들 수 있기 때문에 다른 Python 기반 웹 라이브러리/프레임워크보다 인기가 있습니다. 이 기사에서는 Flask에 대해 설명하지 않습니다. 온라인에서 훌륭한 블로그 게시물을 찾아 Flask가 얼마나 강력한지 확인할 수 있습니다.
그래서 방법?
설정
이것이 간단한 Flask 앱의 모습입니다.
> Folder (Flask App)
> templates
> index.html
> app.py
템플릿 폴더에는 Flask 앱용 보기인
index.html
파일이 포함되어 있습니다. 이는 Express의 view
폴더에 해당합니다. index.html
파일에 많은 html을 작성할 수 있기 때문에 기술적으로는 설정이 완료되었습니다. 그러나 우리 모두는 순수한 html이 갈 길이 아니라는 것을 알고 있습니다.index.html
에 JavaScript를 추가하려면 루트 디렉토리에 static
라는 폴더를 만드십시오.최종 Flask 앱은 다음과 같아야 합니다.
> Folder (Flask App)
> static
> templates
> index.html
> app.py
자바스크립트 추가
이제
static
폴더 안에 JavaScript 파일을 추가하겠습니다. 먼저 main.js
라는 JavaScript 파일을 하나 추가하여 시작하겠습니다.> Folder (Flask App)
> static
> main.js
> templates
> index.html
> app.py
이제
index.html
파일을 엽니다. 베어 스켈레톤 html 만 있다고 가정합니다.<!DOCTYPE html>
<html>
<head>
<title>Flask App!</title>
</head>
<body>
</body>
</html>
일반적으로
<script>
태그를 그대로 사용하여 JavaScript 파일을 추가합니다.<script type='text/javascript' src='main.js'></script>
Flask 앱에서는 불가능합니다. 그러나 매우 간단한 수정 사항이 있습니다.
main.js
폴더에 static
가 있다고 가정하고 src
태그의 <script>
속성에 다음 코드를 삽입합니다.src={{ url_for('static', filename='main.js') }}
최종
index.html
은 다음과 같습니다.<!DOCTYPE html>
<html>
<head>
<title>Flask App!</title>
</head>
<body>
...
<script type='text/javascript' src={{ url_for('static', filename='main.js') }}></script>
</body>
</html>
엄청난! 그러나 여러 JavaScript 파일은 어떻습니까?
번들링이 작동하는 때입니다.
자바스크립트 번들링
사용자 입장에서는 다양한 기능을 위한 여러 JavaScript 파일을 보유하는 것이 좋습니다. 그러나 DOM의 관점에서는 상관하지 않습니다. 오히려 여러 JavaScript 파일보다 하나의 JavaScript 파일을 렌더링하는 것이 좋습니다. 따라서 모든 JavaScript 파일을 함께 묶고 하나의
main.js
파일을 index.html
에 전달합니다.먼저 명령줄에
flask_assets
를 설치합니다.pip install flask_assets
다음으로 Flask 앱(이 경우
app.py
)에서 Bundle
및 Environment
를 가져옵니다.from flask_assets import Bundle, Environment
다음과 같은 폴더 구조가 있다고 가정합니다. 묶고 싶은 JavaScript 파일이 세 개 있습니다.
> Folder (Flask App)
> static
> file1.js
> file2.js
> file3.js
> templates
> index.html
> app.py
이제 JavaScript 파일 번들을 만듭니다.
# your imports
...
app = Flask(__name__)
files = Bundle('file1.js', 'file2.js', 'file3.js', output = 'gen/main.js')
다음으로 우리 앱의 환경을 생성하는
assets
변수를 생성하고 등록합니다....
files = Bundle('file1.js', 'file2.js', 'file3.js', output = 'gen/main.js')
assets = Environment(app)
assets.register('main_js', js)
그게 다야 우리
app.py
.`index.html'로 이동하여 다음 코드를 추가하십시오.
그리고 그게 다야!
JavaScript 번들 또는
gen
가 있는 main.js
라는 새 디렉토리가 있음을 알아차렸을 것입니다.CSS 번들링도 유사하므로 여러 css 파일을
index.html
에 전달해야 하는 경우 위의 단계를 다시 수행하십시오.이것이 도움이 되기를 바라며 행복한 webdev!
Reference
이 문제에 관하여(Flask 보기에서 직접 프런트엔드를 빌드하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/kyle12jung/how-to-build-frontend-on-flask-view-directly-2fcj텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)