idealyard
idealyard copied to clipboard
使用 Vue 和 Flask 搭建前后端分离的 RESTful 个人博客
IdealYard
ä½¿ç¨ Vue
å Flask
æ建åå端å离ç RESTful 个人å客ã
å ³äºè¯¥é¡¹ç®çé¨å说æå¯å¨æ¤å¤æ¾å°ðAbout IdealYardï¼å¦æ没ææ¾å°éè¦çå 容ï¼è¯·é®ä»¶æè Issues 交æµï¼
â 注æ
-
该åå®¢ä» ç¨äºå¦ä¹ åçï¼å端页é¢å¹¶æªå®ç°ååºå¼å¸å±ï¼ææ¶ä¹æ²¡æç²¾åå»å®ç°ï¼å客å 容ä¹æ²¡ææ¶é´å»æçãå ³äºæ¥å¸¸çè®°å½å客主è¦å¨å«é¢ç§å¿ä¹ä¸æ´æ°ã
-
å¦æä½ æ¯ Flask åå¦è ï¼æ¨èä¸æ¬å½äººä¹¦ç±ç»å¤§å®¶ãFlask Webå¼åå®æï¼å ¥é¨ãè¿é¶ä¸åç解æãï¼æ¬äººä¹æ¯è¯¥ä¹¦çé 读è ä¸åçè ãåæ¶å»ºè®®å¤å»è¿ä¸ªç½ç«ççï¼HelloFlask - Flaskèµæºéåå°
-
ç±äºæå¡å¨å°æï¼æ¬å客ææ æ¼ç¤ºåè½ï¼å¦ææåå¦é¨ç½²ä¸çº¿å¹¶å¯ä»¥æä¾æ¼ç¤ºé¾æ¥ï¼åé常æè°¢ãææ¶è¯·ç¹å»ä¸æ¹é¾æ¥è§çç®åçåè½æ¼ç¤ºã ä½¿ç¨ Vue å Flask æ建åå端å离ç RESTful 个人å客åè½å±ç¤º_åå©åå© (ã-ã)ã¤ã å¹²æ¯~-bilibili
-
ç±äºæ¤å¤ æå°çåå ï¼Flask-RESTful å·²ç»ä¸æ¯ä¸ä¸ªå¾å¥½çéæ©ï¼å¯è½flask-restx å Apiflask <å½äººå¼å>ï¼æ³¨æï¼ç±äºæ¬æ¡æ¶æ£å¨æ´»è·å¼åæå ï¼ä½¿ç¨æ¶è¯·æ éè¯ä¼°ï¼ æ¯ä¸ä¸ªæ´å¥½çæ¿ä»£åãå¦æéè¦å¦ä¹ ï¼ä¹æ¨èè¿ç§»å°ç»´æ¤æ´å 积æçæ©å±ä¸é¢å»ã
注æåºåæ©å±åæ¡æ¶çåºå«ï¼åé ï¼è¯·ä¸è¦æ Flask å FastAPI æ¾å°ä¸èµ·æ¯è¾ | æè¾
æ¢ç¶ãFastAPI åºè¯¥ååºäº Flask ç Web API æ¡æ¶æ¯è¾ãï¼é£ä¹åéçæ¯è¾å¯¹è±¡æåªäºï¼Flask-RESTXãFlask-Rebarãflask-apispecãflask-smorestãFlask-RESTfulãAPIFairy è¿äºè½ç¶è¯å¾åææ¡æ¶ï¼ä½å¨å ·ä½å®ç°ä¸ä»ç¶æ¯ Flask æ©å±ã
交æµ
- ææ¯é®é¢è¯·å°½é使ç¨Issues · imoyao/idealyardæé®åé¦ç¤¾åºï¼åé ï¼Issue #15 · imoyao/idealyard
- å¨ç½åçæè®®ä¸å»ºç«äº QQ 群ï¼ç¾¤å·ï¼613922612ãä½æ¯è¯·æ³¨æï¼è¯¥é¡¹ç®ä¸ºå纯å¼æºï¼æ¬äººå¹¶ä¸é æ¤çå©ï¼æèªå·±çç è¦æ¬ï¼ï¼å¨å¯é¢è§çæªæ¥ä¹æ²¡æå¯è½æå ¥å°ä¸ºå¤§å®¶çç解æä¸å»ãæ以该群çç®çæ´å¤æ¯å»ºç«ä¸ä¸ªå°ç½ä¹é´äºç¸äº¤æµçéå¾ãå¦æå¯è½ï¼è¯·å¨å ¬å¼åºåè®¨è®ºä½ çé®é¢èä¸æ¯ç®åå°æåºæªå¾çå¾ çæ¡ã
注æ
å¦éå¿ è¦ï¼è¯·è°¨æ èèæ¯å¦å å ¥ï¼æé¨ååå¦å å ¥åä¸å¥è¯ä¸è¯´åé群ï¼è¿æ ·ç³è¯·å 群ç¶ååé群çæä½ä¼å¯¹æé æä¸å¿ è¦çææ°ã
- ååãååãååãç½ç»ä¸çº¿çµï¼çæè¿æ®µç¼ã请å¡å¿ ååãè¯æ³å°å¯¹å¾ å ¶ä»åå¦ã
åç½®æ¡ä»¶
Python
3.6+
MySQL
mysql Ver 14.14 Distrib 5.7.26, for linux-glibc2.12 (x86_64) using EditLine wrapper
æè
MariaDB
[root@python]# mysql --version
mysql Ver 15.1 Distrib 5.5.64-MariaDB, for Linux (x86_64) using readline 5.1
å建æ°æ®åº
å¼å模å¼æ°æ®åºï¼iyblog_dev
ï¼å¯ä»¥å¨æ¤å¤ä¿®æ¹é
ç½®
CREATE USER 'USERNAME'@'localhost' IDENTIFIED BY 'PASSWORD';
-- å¦æéè¦æ¯æemojiï¼å设置utf8mb4ç¼ç ãå¦å使ç¨utf-8ç¼ç å³å¯
CREATE DATABASE DATABASENAME CHARSET=utf8mb4;
grant all privileges on DATABASENAME.* to USERNAME@localhost identified by 'PASSWORD';
flush privileges;
ç¯å¢é ç½®
-
è¿å ¥å½åç®å½ä¹åï¼å éè¿pipå®è£ pipenv管çå
pip install pipenv [--user]
-
å®è£ Pythonä¾èµ
pipenv install
-
é ç½®ç¯å¢åé
vi .flaskenv
-
ç¼è¾dot.envæ件,é ç½®ç¯å¢åé并éå½å为
.env
vi dot.env mv dot.env .env # åè master åæ¯
å端
nodeånpm/yarnçå®è£ åæ¢æºè¯·ç½ç»æç´¢æç¨èªè¡å®æã
å端é¨ç½²é¨åæ¯ä»¥npm
ä½ä¸ºå
管çå·¥å
·è¿è¡æ¼ç¤ºçï¼å¦æ使ç¨yarn
è¿è¡å
管çï¼è¯·èªè¡ä¿®æ¹ï¼ä½ é½ä½¿ç¨yarnäºï¼è¯å®ä¸ä¼æ¾ä¸å°package.json
çãðï¼
å端æ令é
置请åèfront/package.json
ä¸çscripts
ç« èã
å®è£ ä¾èµ
npm install
å¼å模å¼
- ä¿®æ¹å端æ件
front/config/dev.env.js
ä¸å端请æ±çå°åå端å£ä¸ºå®é apiå°å - å¯å¨å端
npm run dev
ç产模å¼
- åæ¢ç®å½
cd front
- 设置
prod
ç¯å¢BASE_API
å°å
// /idealyard/front/config/prod.env.js
module.exports = {
NODE_ENV: '"production"',
BASE_API: '"http://192.168.116.21:5000/api"' // TODO:ä¿®æ¹ä¸ºçå®APIå°å
}
- 设置
router
为history
模å¼
// path: front/src/router/index.js:16
const router = new VueRouter({
// https://router.vuejs.org/zh/guide/essentials/history-mode.html#html5-history-%E6%A8%A1%E5%BC%8F
// mode: 'history',
routes: []
})
- buildæ件
npm run build
请åé
document/deploy.md
æ件äºè§£æ´å¤ã
Docker æ¯æ
pass
TODO
å 为æ¶é´å
³ç³»ï¼è¿æä¸äºé®é¢æ²¡æ解å³ï¼è¯¦è§æ¤å¤
å¦ææåå¦éè¦PR
ï¼ä¹å¯ä»¥åèæ¤å¤å·²ç¥æªè§£å³é®é¢åbug
åã
æ´å¤
ä¸å ¶å¨å«å¤ä»°æ,ä¸å¦å¨è¿é并è©ã å¼å模å¼é ç½®å说æåè§æ´å¤ææ¡£
代ç æ¦è§
ç®å½ç»æå代ç éç»è®¡åèæ¤å¤
å端æ¦è§
è´è°¢
æè°¢ G å°å§@Sabinerçé¼å±æä¼äº§çå¨æå个人å客çæ³æ³ãä¸åç¼èµ·ï¼é½è¦ä»ä¸å¤æºè·¯è¿ç家æçé£ä¸ªä¸å说起â¦â¦
åæ¶æè°¢@LeiWongå¨å¼åä¸éå°é®é¢å¸®å©å¯»æ¾bug
并解å³é®é¢æ¶ä»åºçæ¶é´ã
A human being should be able to change a diaper, plan an invasion, butcher a hog, conn a ship, design a building, write a sonnet, balance accounts, build a wall, set a bone, comfort the dying, take orders, give orders, cooperate, act alone, solve equations, analyze a new problem, pitch manure, program a computer, cook a tasty meal, fight efficiently, die gallantly. Specialization is for insects.
ä¸ä¸ªäººåºè¯¥è½å¤æ¢å°¿å¸ï¼ çåæäºï¼ æçªï¼ å¼è¹ï¼ 设计æ¿åï¼ åååè¡è¯ï¼ ç»ç®è´¦æ·ï¼ ç å¢ï¼ æ¥è±è¼çéª¨å¤´ï¼ å®æ °æ¿æ»çäººï¼ æä»å½ä»¤ï¼ åå¸å½ä»¤ï¼ æºæåä½ï¼ ç¬ç«è¡å¨ï¼ 解æ°å¦æ¹ç¨ï¼ åææ°é®é¢ï¼ é²ç²ªï¼ çµèç¼ç¨ï¼ ååºå¯å£çé¥ï¼ åææ¶ï¼ åæ¢å°æ»å»ã åªææè«æå¿äºä¸é¨ã
-- ç½ä¼¯ç¹Â·å®æ£®Â·æµ·å è±å ãæ¶é´è¶³å¤ä½ ç±ã