IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> fastapi学习记录【十】 -> 正文阅读

[JavaScript知识库]fastapi学习记录【十】

代码地址:GitHub - wendingming/fastapi-vue-postgresql: fastapi+vue+postgresql搭建项目

今天咱们来学一下,网上开源的这套代码

Vue3+FastAPI: Vue3+ElementPlus+FastAPI 实现学生选课系统

由网友zxiaosi开发完成,感谢

注意:需要python3.8以上版本。

首先进行项目部署:

一、需要先修改fastapi后台的:core/config文件的mysql账号密码,
二、本地mysql新建数据库:elective_system
三、运行fastapi后台的:initial_data的init_data.py文件,【pycharm->打开这个页面->右键->run】
四、VUE前端,修改vite.config.js的BASE_URL:?http://127.0.0.1:9000/api/

五、启动fastapi:在terminal输入代码:uvicorn main:app --reload --port 9000,回车

六、VUE前端:在terminal输入代码:先执行:npm install,再执行:npm run dev

最后前端页面如下图:

?接下来我们来详细看代码,首先是main.py,代码如下:

#!/usr/bin/env python3
# _*_ coding: utf-8 _*_
# @Time : 2021/9/19 22:04
# @Author : zxiaosi
# @desc : 主函数
import uvicorn
from fastapi import FastAPI

from core import settings
from db import init_db
from initial_data import sqlalchemy_core_initial, sqlalchemy_orm_initial
from register import register_app, register_cors, register_exception, register_router, register_redis
from register.middleware import register_middleware
from utils import logger

# 接口文档配置
app = FastAPI(description=settings.PROJECT_DESCRIPTION, version=settings.PROJECT_VERSION)

# 挂载其他app
register_app(app)

# 注册路由
register_router(app)

# 注册跨域请求
register_cors(app)

# 注册Redis
register_redis(app)

# 注册请求响应拦截
register_middleware(app)

# 注册捕获全局异常
register_exception(app)

if __name__ == '__main__':
    logger.info("日志初始化成功!!!")

    # 创建所有表
    init_db()

    # 两种初始化表数据的方式 (只能插入一次)
    # sqlalchemy_orm_initial()  # 速度略慢,性能正常
    sqlalchemy_core_initial()  # 速度与性能并行

    # Docker启动方式
    # uvicorn.run(app='main:app', host="0.0.0.0", port=8000)
    uvicorn.run(app='main:app', host="127.0.0.1", port=9000)

其中第一步,是加载日志,加载日志是使用loguru库,

该库的文档说明可以查看:Overview — loguru documentation

备注:【英文】

中文的安装使用说明,可以参考:Python - loguru日志库,高效输出控制台日志和日志记录 - 小菠萝测试笔记 - 博客园

当前开源代码使用的loguru库代码如下:

#!/usr/bin/env python3
# _*_ coding: utf-8 _*_
# @Time : 2021/11/8 10:44
# @Author : zxiaosi
# @desc : 日志文件夹
import os
from loguru import logger

from core.config import settings

# 获取当前文件夹
current_path = os.path.dirname(__file__)

# 获取当前文件夹的上一层文件
base_path = os.path.abspath(os.path.join(current_path, ".."))

# 拼接日志的路径
log_path = base_path + os.sep + settings.LOGGER_FOLDER + os.sep
# print(f'日志文件夹名: {log_path} \n')

"""如果文件夹不存在就创建"""
os.makedirs(log_path, exist_ok=True)

""" 保留日志文件夹下最大个数(自己调试用) """
file_list = os.listdir(log_path)
if len(file_list) > 4:
    os.remove(os.path.join(log_path, file_list[0]))

# 日志输出路径
log_path_name = os.path.join(log_path, settings.LOGGER_NAME)

# 详见: https://loguru.readthedocs.io/en/stable/overview.html#features
logger.add(log_path_name,
           encoding=settings.GLOBAL_ENCODING,
           level=settings.LOGGER_LEVEL,
           rotation=settings.LOGGER_ROTATION,
           retention=settings.LOGGER_RETENTION,
           enqueue=True)

# 导出变量名
__all__ = ["logger"]

使用后的效果如下:

?嗯,赞一个,简单实用,比java的日志简单容易不知道多少倍,python库,永远的神。

PS:我始终认为,JAVA反人类,要记得东西太多了,而且不直观,只不过学JAVA的人多,库多,啥玩意都有,人多势众说的就是JAVA,只不过学习起来,容易让人头秃,尼玛的一个简单的功能,绕来绕去,还要看JDK版本,第三方库版本,还要配置POM,引用后,还要生成对象,使用对象的各种属性方法,写个接口还要分impl,intf,控制器,安卓用个第三方库,还要把库下载,把各种操作方法,属性,写一套操作代码,然后再把它引用的项目里add library,然后项目里还要调用这些方法,属性,尼玛的,烦不烦啊,太复杂了。

python很简洁,优雅,

我觉得java和python对比,就好像马云对比马斯克,马云vs马化腾,都是姓马【都是编程语言】,都是有钱,都是有本事,区别就是:马云太丑了,java就像他。

不扯淡了,薅头发去,明天再学习

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-02-26 11:22:00  更:2022-02-26 11:23:57 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 9:53:02-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码