Skip to content

Commit 4ee98e7

Browse files
insistencegitee-org
authored andcommitted
!18 RuoYi-Vue-FastAPI v1.5.0
Merge pull request !18 from insistence/develop
2 parents f014bcf + c001496 commit 4ee98e7

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

51 files changed

+1240
-197
lines changed

README.md

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
<p align="center">
22
<img alt="logo" src="https://oscimg.oschina.net/oscnet/up-d3d0a9303e11d522a06cd263f3079027715.png">
33
</p>
4-
<h1 align="center" style="margin: 30px 0 30px; font-weight: bold;">RuoYi-Vue-FastAPI v1.4.0</h1>
4+
<h1 align="center" style="margin: 30px 0 30px; font-weight: bold;">RuoYi-Vue-FastAPI v1.5.0</h1>
55
<h4 align="center">基于RuoYi-Vue+FastAPI前后端分离的快速开发框架</h4>
66
<p align="center">
77
<a href="https://gitee.com/insistence2022/RuoYi-Vue-FastAPI/stargazers"><img src="https://gitee.com/insistence2022/RuoYi-Vue-FastAPI/badge/star.svg?theme=dark"></a>
88
<a href="https://github.com/insistence/RuoYi-Vue-FastAPI"><img src="https://img.shields.io/github/stars/insistence/RuoYi-Vue-FastAPI?style=social"></a>
9-
<a href="https://gitee.com/insistence2022/RuoYi-Vue-FastAPI"><img src="https://img.shields.io/badge/RuoYiVueFastAPI-v1.4.0-brightgreen.svg"></a>
9+
<a href="https://gitee.com/insistence2022/RuoYi-Vue-FastAPI"><img src="https://img.shields.io/badge/RuoYiVueFastAPI-v1.5.0-brightgreen.svg"></a>
1010
<a href="https://gitee.com/insistence2022/RuoYi-Vue-FastAPI/blob/master/LICENSE"><img src="https://img.shields.io/github/license/mashape/apistatus.svg"></a>
1111
<img src="https://img.shields.io/badge/python-≥3.9-blue">
1212
<img src="https://img.shields.io/badge/MySQL-≥5.7-blue">
@@ -17,7 +17,7 @@
1717
RuoYi-Vue-FastAPI是一套全部开源的快速开发平台,毫无保留给个人及企业免费使用。
1818

1919
* 前端采用Vue、Element UI,基于<u>[RuoYi-Vue](https://gitee.com/y_project/RuoYi-Vue)</u>前端项目修改。
20-
* 后端采用FastAPI、sqlalchemy、MySQL、Redis、OAuth2 & Jwt。
20+
* 后端采用FastAPI、sqlalchemy、MySQL(PostgreSQL)、Redis、OAuth2 & Jwt。
2121
* 权限认证使用OAuth2 & Jwt,支持多终端认证系统。
2222
* 支持加载动态权限菜单,多方式轻松权限控制。
2323
* Vue3版本:
@@ -129,15 +129,17 @@ npm run dev
129129
# 进入后端目录
130130
cd ruoyi-fastapi-backend
131131

132-
# 安装项目依赖环境
132+
# 如果使用的是MySQL数据库,请执行以下命令安装项目依赖环境
133133
pip3 install -r requirements.txt
134+
# 如果使用的是PostgreSQL数据库,请执行以下命令安装项目依赖环境
135+
pip3 install -r requirements-pg.txt
134136

135137
# 配置环境
136138
在.env.dev文件中配置开发环境的数据库和redis
137139

138140
# 运行sql文件
139141
1.新建数据库ruoyi-fastapi(默认,可修改)
140-
2.使用命令或数据库连接工具运行sql文件夹下的ruoyi-fastapi.sql
142+
2.如果使用的是MySQL数据库,使用命令或数据库连接工具运行sql文件夹下的ruoyi-fastapi.sql;如果使用的是PostgreSQL数据库,使用命令或数据库连接工具运行sql文件夹下的ruoyi-fastapi-pg.sql
141143

142144
# 运行后端
143145
python3 app.py --env=dev

ruoyi-fastapi-backend/.env.dev

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ APP_HOST = '0.0.0.0'
1010
# 应用端口
1111
APP_PORT = 9099
1212
# 应用版本
13-
APP_VERSION= '1.4.0'
13+
APP_VERSION= '1.5.0'
1414
# 应用是否开启热重载
1515
APP_RELOAD = true
1616
# 应用是否开启IP归属区域查询
@@ -30,6 +30,8 @@ JWT_REDIS_EXPIRE_MINUTES = 30
3030

3131

3232
# -------- 数据库配置 --------
33+
# 数据库类型,可选的有'mysql'、'postgresql',默认为'mysql'
34+
DB_TYPE = 'mysql'
3335
# 数据库主机
3436
DB_HOST = '127.0.0.1'
3537
# 数据库端口

ruoyi-fastapi-backend/.env.prod

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ APP_HOST = '0.0.0.0'
1010
# 应用端口
1111
APP_PORT = 9099
1212
# 应用版本
13-
APP_VERSION= '1.4.0'
13+
APP_VERSION= '1.5.0'
1414
# 应用是否开启热重载
1515
APP_RELOAD = false
1616
# 应用是否开启IP归属区域查询
@@ -30,6 +30,8 @@ JWT_REDIS_EXPIRE_MINUTES = 30
3030

3131

3232
# -------- 数据库配置 --------
33+
# 数据库类型,可选的有'mysql'、'postgresql',默认为'mysql'
34+
DB_TYPE = 'mysql'
3335
# 数据库主机
3436
DB_HOST = '127.0.0.1'
3537
# 数据库端口

ruoyi-fastapi-backend/config/database.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,11 @@
99
f'mysql+asyncmy://{DataBaseConfig.db_username}:{quote_plus(DataBaseConfig.db_password)}@'
1010
f'{DataBaseConfig.db_host}:{DataBaseConfig.db_port}/{DataBaseConfig.db_database}'
1111
)
12+
if DataBaseConfig.db_type == 'postgresql':
13+
ASYNC_SQLALCHEMY_DATABASE_URL = (
14+
f'postgresql+asyncpg://{DataBaseConfig.db_username}:{quote_plus(DataBaseConfig.db_password)}@'
15+
f'{DataBaseConfig.db_host}:{DataBaseConfig.db_port}/{DataBaseConfig.db_database}'
16+
)
1217

1318
async_engine = create_async_engine(
1419
ASYNC_SQLALCHEMY_DATABASE_URL,

ruoyi-fastapi-backend/config/env.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
from dotenv import load_dotenv
55
from functools import lru_cache
66
from pydantic_settings import BaseSettings
7+
from typing import Literal
78

89

910
class AppSettings(BaseSettings):
@@ -38,6 +39,7 @@ class DataBaseSettings(BaseSettings):
3839
数据库配置
3940
"""
4041

42+
db_type: Literal['mysql', 'postgresql'] = 'mysql'
4143
db_host: str = '127.0.0.1'
4244
db_port: int = 3306
4345
db_username: str = 'root'

ruoyi-fastapi-backend/config/get_scheduler.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,11 @@ def __find_recent_workday(cls, day: int):
8282
f'mysql+pymysql://{DataBaseConfig.db_username}:{quote_plus(DataBaseConfig.db_password)}@'
8383
f'{DataBaseConfig.db_host}:{DataBaseConfig.db_port}/{DataBaseConfig.db_database}'
8484
)
85+
if DataBaseConfig.db_type == 'postgresql':
86+
SQLALCHEMY_DATABASE_URL = (
87+
f'postgresql+psycopg2://{DataBaseConfig.db_username}:{quote_plus(DataBaseConfig.db_password)}@'
88+
f'{DataBaseConfig.db_host}:{DataBaseConfig.db_port}/{DataBaseConfig.db_database}'
89+
)
8590
engine = create_engine(
8691
SQLALCHEMY_DATABASE_URL,
8792
echo=DataBaseConfig.db_echo,

ruoyi-fastapi-backend/module_admin/controller/config_controller.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
from datetime import datetime
2-
from fastapi import APIRouter, Depends, Form, Query, Request
2+
from fastapi import APIRouter, Depends, Form, Request
33
from pydantic_validation_decorator import ValidateFields
44
from sqlalchemy.ext.asyncio import AsyncSession
55
from config.enums import BusinessType
@@ -24,7 +24,7 @@
2424
)
2525
async def get_system_config_list(
2626
request: Request,
27-
config_page_query: ConfigPageQueryModel = Query(),
27+
config_page_query: ConfigPageQueryModel = Depends(ConfigPageQueryModel.as_query),
2828
query_db: AsyncSession = Depends(get_db),
2929
):
3030
# 获取分页数据

ruoyi-fastapi-backend/module_admin/controller/dept_controller.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
from datetime import datetime
2-
from fastapi import APIRouter, Depends, Query, Request
2+
from fastapi import APIRouter, Depends, Request
33
from pydantic_validation_decorator import ValidateFields
44
from sqlalchemy.ext.asyncio import AsyncSession
55
from typing import List
@@ -42,7 +42,7 @@ async def get_system_dept_tree_for_edit_option(
4242
)
4343
async def get_system_dept_list(
4444
request: Request,
45-
dept_query: DeptQueryModel = Query(),
45+
dept_query: DeptQueryModel = Depends(DeptQueryModel.as_query),
4646
query_db: AsyncSession = Depends(get_db),
4747
data_scope_sql: str = Depends(GetDataScope('SysDept')),
4848
):

ruoyi-fastapi-backend/module_admin/controller/dict_controller.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
from datetime import datetime
2-
from fastapi import APIRouter, Depends, Form, Query, Request
2+
from fastapi import APIRouter, Depends, Form, Request
33
from pydantic_validation_decorator import ValidateFields
44
from sqlalchemy.ext.asyncio import AsyncSession
55
from typing import List
@@ -32,7 +32,7 @@
3232
)
3333
async def get_system_dict_type_list(
3434
request: Request,
35-
dict_type_page_query: DictTypePageQueryModel = Query(),
35+
dict_type_page_query: DictTypePageQueryModel = Depends(DictTypePageQueryModel.as_query),
3636
query_db: AsyncSession = Depends(get_db),
3737
):
3838
# 获取分页数据
@@ -152,7 +152,7 @@ async def query_system_dict_type_data(request: Request, dict_type: str, query_db
152152
)
153153
async def get_system_dict_data_list(
154154
request: Request,
155-
dict_data_page_query: DictDataPageQueryModel = Query(),
155+
dict_data_page_query: DictDataPageQueryModel = Depends(DictDataPageQueryModel.as_query),
156156
query_db: AsyncSession = Depends(get_db),
157157
):
158158
# 获取分页数据

ruoyi-fastapi-backend/module_admin/controller/job_controller.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
from datetime import datetime
2-
from fastapi import APIRouter, Depends, Form, Query, Request
2+
from fastapi import APIRouter, Depends, Form, Request
33
from pydantic_validation_decorator import ValidateFields
44
from sqlalchemy.ext.asyncio import AsyncSession
55
from config.enums import BusinessType
@@ -32,7 +32,7 @@
3232
)
3333
async def get_system_job_list(
3434
request: Request,
35-
job_page_query: JobPageQueryModel = Query(),
35+
job_page_query: JobPageQueryModel = Depends(JobPageQueryModel.as_query),
3636
query_db: AsyncSession = Depends(get_db),
3737
):
3838
# 获取分页数据
@@ -148,7 +148,7 @@ async def export_system_job_list(
148148
)
149149
async def get_system_job_log_list(
150150
request: Request,
151-
job_log_page_query: JobLogPageQueryModel = Query(),
151+
job_log_page_query: JobLogPageQueryModel = Depends(JobLogPageQueryModel.as_query),
152152
query_db: AsyncSession = Depends(get_db),
153153
):
154154
# 获取分页数据

0 commit comments

Comments
 (0)