[zh-中文](./readme_zh.md)
# Frodo V2.0
![python-version](https://img.shields.io/badge/python-3.7-green)
![Frodo-v2.0](https://img.shields.io/badge/tag-v2.0-blue)
Frodo is a personal blog using python and golang's **asynchronous** technique.
[Document(only Chinese now and Eng version will be soon)~](http://zhikai.pro/html/index.html)
![](http://zhikai.pro/static/img/frodo-min.gif)
## Overview
v2.0 add new language golang to rebuild the `admin` module's api, blog's front end page is still rendered by python.
### techniques selection
Frodo's technique selection is as follows:
- Blog Page Web Framework:`python/fastapi`
- Page ORM: `sqlalchemy` + `encode/databases` (as FastAPI recommends)
- Page Templates: `Mako/FastAPI-Mako`
- python async web service: `asgi/uvicorn`
- Admin Web Framework: `golang/gin`
- Addmin ORM: `gorm`
- Admin UI: [vue-element-admin](https://github.com/PanJiaChen/vue-element-admin)
- KV database: `redis`
- cached: `redis/memcached`
- reverse web proxy: `nginx`
- data persistence: `mysql`
- database migration: `alembic`
- authentication: `JWT`
- python type hints: `pydantic`
### features
- Admin platform supports posts, users and topics Create, Read, Update, Delete (CRUD)
- Admin posts editor suport preview and markdown
- Page supports programming lang highlights, Latex Math equations and TOC.
- Blog has posts global searching
- Visitors' react and comments based on Github Auth
- Batch posts in markdown or HEXO exportation
- Customize your persion partail diplay
- Activities like twitter
- Docker deploments
### why fastapi?
`fastapi` is a python web framework gathering features of flask, django. It supports both asynchronous checkpoints and normal blog ways. Using `uvicorn` to support eventloop make fastapi faster. More excellent feature is the pydantic and data scheme, encouraging to follow the OpenAPI rules, the `swagger-docs` will be generated automatically.
### why golang?
python service use asynchornous asyncio ecosystem. Golang supports asynchronous primitively. `goroutine` is like python's corouine can be controlled by eventloop. Admin's api is very easy to rebuilt via golang.
### Display:
Admin paltform:
![](doc/images/admin.png)
Blog Pages:
![](doc/images/index.png)
Activity:
![](doc/images/activity.png)
## Setup
### Docker deployment (Recommends!)
The following are based on `docker-compose-1.25.5`, `MacOS-Majave 15.15` version.
Other verion could be fine as well (not tested!)
#### Modify the config
`python_web/config/config.ini.model` and `goadmin/config.ini.model`,
```
[global]
debug = True
author = yzk
site_title = Zhikai-Yang Space
host_path = localhost:9080 ## alter this to your web port, like localhost for example
```
Note: the `host_path` in config file should be with ip:port
The rest configuration is every service's port, if some port are not accessed, please modify the corresponding config in `nginx.conf`, `docker-compose.yml`.
#### build images
```
git clone https://github.com/LouisYZK/Frodo
cd Frodo
sh build.sh
```
There are two web images(python and golang) should be built for a while, if there are some errors about network, you can rebuild it.
**Note: Raspberry Pi images' building**
Raspberry Pi using linux/arm64, related docker-compose configuration are in `docker-compose-arm.yml`, some images that only can run on x86 should be replaced. Some bugs also fixed in arm64.
#### Start
```
docker-compose up ## start the whole servcie
```
It will start five service in docker-compose in some order:
- mysql
- redis
- python_web
- golang_web
- nginx
You can use `docker-compose ps ` to see wether all service are initailizaed correctly, if some service's status are `Exited` or other errors, please check the start logs and figure out the failure reasons.
Please issue me if the errors are about the program itself!
#### Usage
If start successfully, you should create an admin user firstly:
```
docker exec -it $(docker ps | grep frodo/pyweb | awk '{print $1}') python manage.py adduser
```
confirm the usernam and password according to the hints
then, you can visit `<host_ip>:<nginx_server_port>/admin`, for example `localhost:9080/admin` on local PC. Using the accounts you've just created to enter the admin platform.
You can creating some posts for test, and visit `localhost:9080` to see its performance.
User's custome partial config is in `python_web/config.yaml`, modify it and it will work without docker-compose restartinf.
#### Environment Test
There are some os already testing without errors
- [x] Ubuntu LTS 16.06 | x86_64
- [x] MacOS Majave 15 | x86_64
- [x] Raspberry 4b Debian 10 | arm64/v8 ...
- [ ] Windows ...
Welcom to deploy Frodo on your device!~ And issue me for any problems!~
## For developers
The api docs are generated automically in `:/docs`, it can be tested directly.
I'm sorry that developing documents only in Chinese version currently.
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
【资源说明】 Python毕业设计基于fastapi+golanggin+Vue+docker的个人博客系统+详细文档+全部资料(高分项目)Python毕业设计基于fastapi+golanggin+Vue+docker的个人博客系统+详细文档+全部资料(高分项目)Python毕业设计基于fastapi+golanggin+Vue+docker的个人博客系统+详细文档+全部资料(高分项目) 【备注】 1、该项目是个人高分毕业设计项目源码,已获导师指导认可通过,答辩评审分达到95分 2、该资源内项目代码都经过mac/window10/11测试运行成功,功能ok的情况下才上传的,请放心下载使用! 3、本项目适合计算机相关专业(如软件工程、计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也可作为毕设项目、课程设计、作业、项目初期立项演示等,当然也适合小白学习进阶。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!
资源推荐
资源详情
资源评论
收起资源包目录
Python毕业设计基于fastapi+golanggin+Vue+docker的个人博客系统+详细文档+全部资料(高分项目) (255个子文件)
2020-05_png 109KB
Dockerfile.arm 264B
make.bat 799B
nginx.conf 2KB
uikit.min.css 243KB
post.min.css 65KB
app.css 55KB
index.min.css 46KB
topic.min.css 38KB
main.min.css 37KB
app.css 34KB
base.css 20KB
gitment.css 20KB
pure-min.css 16KB
balloon.min.css 8KB
iconfont.css 5KB
social-sharer.css 5KB
dracula.css 5KB
react.css 4KB
post.css 2KB
chunk-vendors.css 2KB
chunk-45698e1a.css 1KB
chunk-c8796b68.css 1KB
topic.css 1KB
widget.css 987B
tomorrow.min.css 631B
index.css 452B
Dockerfile 434B
Dockerfile 228B
iconfont.eot 5KB
.gitattributes 148B
.gitignore 214B
.gitignore 159B
admin.go 6KB
post.go 5KB
jwt.go 2KB
setting.go 2KB
user.go 2KB
cache.go 2KB
base.go 1KB
utils.html 8KB
github-card.html 7KB
post.html 4KB
base.html 3KB
index.html 2KB
about_me.html 2KB
admin.html 1KB
topic.html 1KB
latest_comments.html 958B
search.html 915B
index.html 798B
archives.html 690B
topics.html 689B
index.html 651B
tagcloud.html 637B
activities.html 587B
tag.html 580B
tags.html 441B
blogroll.html 390B
most_viewed.html 339B
mention.html 303B
html.html 152B
favicon.ico 4KB
favicon.ico 1KB
alembic.ini 2KB
alembic.ini 2KB
default-avatar.jpg 16KB
chunk-vendors.js 1.66MB
app.js 862KB
app.js 381KB
blog.js 153KB
search.js 87KB
index.js 86KB
highlight.min.js 45KB
social-sharer.js 33KB
chunk-c8796b68.js 30KB
language.js 7KB
chunk-2d230fe7.js 5KB
router.js 5KB
tagsView.js 4KB
api.js 3KB
chunk-2d2382a4.js 3KB
user.js 2KB
index.js 2KB
scrollTo.js 2KB
github-widget.js 2KB
app.js 1KB
vue.config.js 1KB
effectRipple.js 1KB
vue.config.js 1KB
request.js 1KB
ResizeHandler.js 971B
FixiOSBug.js 633B
data2blob.js 616B
main.js 608B
main.js 589B
getters.js 383B
index.js 337B
auth.js 325B
index.js 318B
共 255 条
- 1
- 2
- 3
资源评论
不走小道
- 粉丝: 3210
- 资源: 5118
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功