网站域名备案主机名服务器安wordpress
news/
2025/9/24 3:28:22/
文章来源:
网站域名备案主机名,服务器安wordpress,孝感建设银行网站,在婚恋网站做翻译好吗一、说明
本文章就是记录自己的学习过程#xff0c;如果有用您可以参考#xff0c;没用你就略过#xff0c;没有好与不好之分#xff0c;今天主要是参考了gitee上的一些项目#xff0c;一步一步的往后i建立
对于学习来说#xff0c;如果您有java c等经验#xff0c;py…一、说明
本文章就是记录自己的学习过程如果有用您可以参考没用你就略过没有好与不好之分今天主要是参考了gitee上的一些项目一步一步的往后i建立
对于学习来说如果您有java c等经验python相对来说简单当然是入门简单所以找个简单的教材看看就可开始干了当然面试除外问的问题不一样毕竟不允许你bug多不是。自己学多点bug也不是坏事但是面试不一样得好好学我不用去面试就边学边干
至于为什么选fastapi而不是django这个也是听说fastapi效率更高还有就是如果以后采集数据进行数据处理深度学习不知道会不会更好反正网上说更适合我也就用了
二、安装要用的包
既然是站在巨人的肩膀RuoYi-Vue3-FastAPI之上就不客气了直接搞个requirements.txt文件装吧前端好多都是这么玩的nodejs在根目录建一个requirements.txt 进入项目根目录直接装
安装之前设置一下pip源
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
pip install -r requirements.txt 我这里出错了python 版本3.8 不行后来升级了3.9包的版本和python版本不匹配造成的。 后来又出错了ERROR: pandas 2.1.4 has requirement pytz2020.1, but youll have pytz 2019.3 which is incompatible. pip install --upgrade pytz 安装最新的就可以了后来在别的机器上跑了一遍没有这一错误 三、导入数据库
前面讲过我们是在RuoYi-Vue3-FastAPI的基础上学习所以数据库直接导入比较数据库的设计还是花时间的直接搞定框架再回来学习
没有装远程链接工具直接用命令行导入 e) jiangkpingbm1dqvp3wr5zfyw:~/Downloads$ sudo mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 13 Server version: 8.0.21 MySQL Community Server - GPL Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type help; or \h for help. Type \c to clear the current input statement. mysql CREATE DATABASE victor CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; Query OK, 1 row affected (0.01 sec) 数据sql文件目录/home/jiangkping/Desktop/mucauna-fastapi/sql/victor.sql (base) jiangkpingbm1dqvp3wr5zfyw:~/Downloads$ sudo mysql -u root -p victor /home/jiangkping/Desktop/mucauna-fastapi/sql/victor.sql Enter password: (base) jiangkpingbm1dqvp3wr5zfyw:~/Downloads$ sudo mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 15 Server version: 8.0.21 MySQL Community Server - GPL Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type help; or \h for help. Type \c to clear the current input statement. mysql use victor; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changedmysql show tables; ------------------ | Tables_in_victor | ------------------ | gen_table | | gen_table_column | | sys_config | | sys_dept | | sys_dict_data | | sys_dict_type | | sys_job | | sys_job_log | | sys_logininfor | | sys_menu | | sys_notice | | sys_oper_log | | sys_post | | sys_role | | sys_role_dept | | sys_role_menu | | sys_user | | sys_user_post | | sys_user_role | ------------------ 19 rows in set (0.00 sec) 显示出table了证明导入成功 四、建立后端代码框架
这可不是我的功劳我就是个搬运工搬运代码之后是这个样子证明有戏下面把步骤贴上明天做几个接口测试一下数据库和redis这个必须要保证 1、拷贝config目录
里面有编译不过的直接注释基本都是controler接口里的先干掉编译再说SchedulerUtil的先清空给个空文件会编译不过
2、拷贝utils目录和前面一样
3、拷贝middlewares、exceptions、sub_applications
和前面一样直接加上就行了不过这3个目录我放到了一起systemhandle目录里面去了
见图 4、建立 server.py from fastapi import FastAPI from config.env import AppConfig from config.get_redis import RedisUtil from config.get_db import init_create_table # from config.get_scheduler import SchedulerUtil from utils.log_util import logger from utils.common_util import worship from contextlib import asynccontextmanager from systemhandle.subApp.handle import handle_sub_applications from systemhandle.middlewares.handle import handle_middleware from systemhandle.exceptions.handle import handle_exception # 生命周期事件 asynccontextmanager async def lifespan(app: FastAPI): logger.info(f{AppConfig.app_name}开始启动) worship() await init_create_table() app.state.redis await RedisUtil.create_redis_pool() await RedisUtil.init_sys_dict(app.state.redis) await RedisUtil.init_sys_config(app.state.redis) # await SchedulerUtil.init_system_scheduler() logger.info(f{AppConfig.app_name}启动成功) yield await RedisUtil.close_redis_pool(app) # await SchedulerUtil.close_system_scheduler() # 初始化FastAPI对象 app FastAPI( titleAppConfig.app_name, descriptionf{AppConfig.app_name}接口文档, versionAppConfig.app_version, lifespanlifespan ) # 挂载子应用 handle_sub_applications(app) # 加载中间件处理方法 handle_middleware(app) # 加载全局异常处理方法 handle_exception(app) # 加载路由列表 controller_list [ #先全部去掉后面再一个一个加 ] for controller in controller_list: app.include_router(routercontroller.get(router), tagscontroller.get(tags)) 这个加进去后会出现编译错误主要是包路径的问题和我自己有关我改了路径你们不改的没关系3个handle.py里处理下路径就是多了个systemhandle的路径 5、建立app.py import uvicorn from server import app, AppConfig if __name__ __main__: uvicorn.run( appapp:app, hostAppConfig.app_host, portAppConfig.app_port, root_pathAppConfig.app_root_path, reloadAppConfig.app_reload ) 6、环境变量文件 .env.dev和.env.prod拷贝过来根据自己的改下就行了 # -------- 应用配置 -------- # 应用运行环境 APP_ENV dev # 应用名称 APP_NAME mucauna-fastapi # 应用代理路径 APP_ROOT_PATH /dev-api # 应用主机 APP_HOST 0.0.0.0 # 应用端口 APP_PORT 9999 # 应用版本 APP_VERSION 0.0.1 # 应用是否开启热重载 APP_RELOAD true # 应用是否开启IP归属区域查询 APP_IP_LOCATION_QUERY true # 应用是否允许账号同时登录 APP_SAME_TIME_LOGIN true # -------- Jwt配置 -------- # Jwt秘钥 openssl rand -hex 32就可生成 JWT_SECRET_KEY cff428973c740c9894d0877c30764a269f48e77254969e6823f51a5eda415da5 # Jwt算法 JWT_ALGORITHM HS256 # 令牌过期时间 JWT_EXPIRE_MINUTES 1440 # redis中令牌过期时间 JWT_REDIS_EXPIRE_MINUTES 30 # -------- 数据库配置 -------- # 数据库主机 DB_HOST 127.0.0.1 # 数据库端口 DB_PORT 3306 # 数据库用户名 DB_USERNAME root # 数据库密码 DB_PASSWORD 123456 # 数据库名称 DB_DATABASE victor # 是否开启sqlalchemy日志 DB_ECHO true # -------- Redis配置 -------- # Redis主机 REDIS_HOST 127.0.0.1 # Redis端口 REDIS_PORT 6379 # Redis用户名 REDIS_USERNAME # Redis密码 REDIS_PASSWORD # Redis数据库 REDIS_DATABASE 0 7、测试下
http://localhost:8080/dev-api/docs
有效果的 我们今天就加这么多明天再来
外网也是OK的
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/914720.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!