Python Flask 프런트엔드 워크플로 설정
24424 단어 flasktailwindcssjavascriptpython
루트 폴더 구조에서
yarn init -y
를 실행하여 원하는 대로 yarn 또는 npm을 설정합니다.yarn init -y
다음과 같은 파일
package.json
을 얻습니다.{
"name": "flask_blog",
"version": "1.0.0",
"repository": "[email protected]:MuhammadSaim/flask_tutorial_blog.git",
"author": "Muhammad Saim",
"license": "MIT"
}
이제 이 명령을 사용하여 프로젝트의 모든 Dev 종속성을 설치합니다. 빌드 도구로 Laravel Mix을 사용합니다.
yarn install autoprefixer laravel-mix postcss tailwindcss -D
이것을 실행한 후
package.json
는 다음과 같이 표시됩니다.{
"name": "flask_blog",
"version": "1.0.0",
"repository": "[email protected]:MuhammadSaim/flask_tutorial_blog.git",
"author": "Muhammad Saim",
"license": "MIT",
"devDependencies": {
"autoprefixer": "^10.4.8",
"laravel-mix": "^6.0.49",
"postcss": "^8.4.16",
"tailwindcss": "^3.1.8"
}
}
이제 프로젝트에 필요한 프로젝트의 종속성을 설치합니다. UI에는 Tailwind의 UI 키트Daisy UI를 사용합니다.
yarn add @tailwindcss/typography daisyui jquery
이러한 종속성을 설치한 후
package.json
는 다음과 같이 표시됩니다.{
"name": "flask_blog",
"version": "1.0.0",
"repository": "[email protected]:MuhammadSaim/flask_tutorial_blog.git",
"author": "Muhammad Saim",
"license": "MIT",
"devDependencies": {
"autoprefixer": "^10.4.8",
"laravel-mix": "^6.0.49",
"postcss": "^8.4.16",
"tailwindcss": "^3.1.8"
},
"dependencies": {
"@tailwindcss/typography": "^0.5.4",
"daisyui": "^2.22.0",
"jquery": "^3.6.0"
}
}
이제 프로젝트에 대한 tailwindcss 구성 파일을 생성합니다.
npx tailwindcss init
이렇게 하면 다음과 같은 모양
tailwind.confg.js
이 생성됩니다./** @type {import('tailwindcss').Config} */
module.exports = {
content: [],
theme: {
extend: {},
},
plugins: [],
}
이제 루트 디렉토리에
src
폴더를 만들고 src
폴더에 css
및 js
폴더를 두 개 더 만들고 app.css
폴더에 css
파일을 만들고 app.js
폴더에 js
파일을 만듭니다. ) 폴더. 폴더 구조는 다음과 같습니다.src/css/app.css
파일을 열고 거기에 tailwind 지시문을 배치합니다.@tailwind base;
@tailwind components;
@tailwind utilities;
src/js/app.js
파일을 열고 해당 파일에서 jquery를 설정합니다.window.$ = window.jQuery = require('jquery');
이제 프로젝트에서 Daisy UI 및 twailwind의 타이포그래피 도우미를 구성할 시간입니다.
tailwind.config.js
파일을 열고 플러그인 배열에 이 두 항목을 추가합니다.{
...,
plugins: [
require('@tailwindcss/typography'),
require('daisyui')
]
}
그 후
tailwind.config.js
는 다음과 같습니다. 또한 콘텐츠에 템플릿과 js 파일을 추가하여 tailwindcss가 프로젝트에서 사용 중인 클래스를 생성하고 프로젝트가 css 파일을 최소화하기 위해 사용하지 않는 빌드 파일에서 해당 클래스를 제거하도록 합니다./** @type {import('tailwindcss').Config} */
module.exports = {
content: [
'./application/views/**/*.jinja2',
'./application/assets/js/**/*.js',
],
theme: {
extend: {},
},
plugins: [
require('@tailwindcss/typography'),
require('daisyui')
],
}
이제 빌드 도구Laravel Mix를 사용하여 이러한 자산을 빌드할 시간입니다. 루트 디렉터리에
webpack.mix.js
파일을 생성하고 이러한 모든 구성을 해당 파일에 배치합니다.const mix = require('laravel-mix');
mix.options({
fileLoaderDirs: {
fonts: "assets/fonts",
images: "assets/images",
},
});
mix.js("src/js/app.js", "application/assets/js")
.postCss("src/css/app.css", "application/assets/css", [
require("tailwindcss"),
]);
개발 및 프로덕션용 자산을 빌드하려면 스크립트가 필요하므로 해당 줄을 추가한 후
package.json
파일에 해당 줄을 추가하십시오. package.json은 다음과 같습니다.{
"name": "flask_blog",
"version": "1.0.0",
"repository": "[email protected]:MuhammadSaim/flask_tutorial_blog.git",
"author": "Muhammad Saim",
"license": "MIT",
"scripts": {
"dev": "npm run development",
"development": "mix",
"watch": "mix watch",
"watch-poll": "mix watch -- --watch-options-poll=1000",
"hot": "mix watch --hot",
"prod": "npm run production",
"production": "mix --production"
},
"devDependencies": {
"autoprefixer": "^10.4.8",
"laravel-mix": "^6.0.49",
"postcss": "^8.4.16",
"tailwindcss": "^3.1.8"
},
"dependencies": {
"@tailwindcss/typography": "^0.5.4",
"daisyui": "^2.22.0",
"jquery": "^3.6.0"
}
}
이러한 구성을 추가한 후 명령을 실행하여 이러한 자산을 빌드할 수 있습니다.
개발
yarn dev
생산
yarn prod
감시 서버
yarn watch
이것은
assets
디렉토리의 application/assets
디렉토리에 자산을 빌드합니다. .gitignore
디렉토리의 application
파일에서 이 디렉토리를 무시할 수도 있습니다.이제
views
에서 3개의 폴더includes
, layouts
및 pages
에서 이름이 app.jinja2
인 레이아웃에 하나의 파일을 만들고 pages
디렉토리에 이름이 home.jinja2
인 두 번째 파일을 만듭니다. 두 개의 파일이 여기에 있습니다.app.jinja2
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="{{ url_for('static', filename='css/app.css') }}">
<title>{% block title %}{% endblock %}</title>
</head>
<body class="prose">
{% block content %}{% endblock %}
<script src="{{ url_for('static', filename='css/app.css') }}"></script>
</body>
</html>
집.진자2
{% extends 'layouts/app.jinja2' %}
{% block title %} Home {% endblock %}
{% block content %}
<h1 class="text-3xl">Home</h1>
<button class="btn btn-primary">Home</button>
{% endblock %}
컨트롤러에서 약간 변경할 수 있도록 모든 템플릿을 설정한 후
home.py
.from flask import Blueprint, render_template
controller = Blueprint('home', __name__)
@controller.route('/', methods=['GET'])
def index():
return render_template('pages/home.jinja2')
이제 응용 프로그램을 실행하십시오
python run.py
URL 열기
https://127.0.0.1:5000
GitHub Repo에서 업데이트된 코드를 얻을 수 있습니다.
나와 함께 해주셔서 감사합니다.
이 게시물을 진행하는 동안 문제가 있으면 다음 게시물에서 뵙겠습니다. 언제든지 댓글을 남겨주세요.
Reference
이 문제에 관하여(Python Flask 프런트엔드 워크플로 설정), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/muhammadsaim/python-flask-frontend-workflow-setup-59hd텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)