# react-pdf **Repository Path**: yazutang/react-pdf ## Basic Information - **Project Name**: react-pdf - **Description**: 使用fastapi, react和material-ui实现pdf阅读网站 - **Primary Language**: JavaScript - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2021-07-13 - **Last Updated**: 2023-12-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # react-pdf #### 介绍 使用FastAPI, React和Material-UI实现PDF阅读网站 #### 使用 ```bash # FastAPI后端安装依赖包和启动 pipenv install uvicorn run:app --reload # 需要启动mysql和redis(需要设置密码)服务 # react按照依赖包和启动 cd reactapp npm i npm start # 书籍封面存放目录: reactapp/public/media/[书籍类别名称]/covers # 书籍PDF文件存放目录: reactapp/public/media/[书籍类别名称]/files # 需要创建日志文件 touch backend/logs/error.log ``` #### 技术栈 - FastAPI - MySQL (aiomysql) - Redis (aioredis) - React - Material-UI - webviewer #### 后端API接口 http://127.0.0.1:8000/docs http://127.0.0.1:8000/redoc #### JavaScript PDF库 WebViewer参考文档 pdftron/webdriver: [https://www.pdftron.com/documentation/web/react/](#https://www.pdftron.com/documentation/web/react/) 安装: `npm i @pdftron/webviewer` 需要拷贝node_modules/@pdftron/webviewer/public下的目录到reactapp/public/webviewer/lib目录下(该目录可以在代码中指定) #### 在package.json中添加 "proxy": "http://127.0.0.1:8000" 规避cors #### redis密码 ```bach # redis设置密码 (redis-cli --raw # --raw显示中文) config set requirepass "你的密码" # 查看是否设置成功 config get requirepass # 认证 auth "你的密码" # 清除密码 config set requirepass "" # 注意:终端设置密码后,如果重启redis服务需要重新设置密码 # 或者修改配置文件 sudo vim /etc/redis/redis.conf 找到 # requirepass foobared 去掉注释,那么你的密码就是foobared,应当修改为其他密码 ``` #### gunicorn `gunicorn -w 4 -k uvicorn.workers.UvicornWorker run:app` #### 问题,如果mysql sha256加密密码需要安装cryptography ```bash $ pipenv install cryptography $ pipenv install aioredis==1.3.1 # aioredis 2.0向后不兼容 ```