# fastapi-blog-forum **Repository Path**: subteamok/fastapi-blog-forum ## Basic Information - **Project Name**: fastapi-blog-forum - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-01-24 - **Last Updated**: 2025-01-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # GNUBOARD6 is Python CMS with fastapi

PyPI - Python Version Static Badge

##演示站点 - [https://g6.demo.sir.kr/](https://g6.demo.sir.kr/) ##社区 ###努沃德6社区 - [https://sir.kr/main/g6](https://sir.kr/main/g6) ###努沃德YouTube频道 - [https://www.youtube.com/@gnuboard-official](https://www.youtube.com/@gnuboard-official) ##开始 ### 1. 设置 -建议使用Git进行安装。 -如果根目录中没有“.env”文件,安装将自动进行。 ####如何安装 ```bash #从Github复制并安装Gnuboard6。 git clone https://github.com/gnuboard/g6.git ``` ```bash 使用#cd命令导航到g6目录。 cd g6 ``` ```bash #创建虚拟环境。不是必需的安装元素。 python -m venv venv #或 python3 -m venv venv # Linux source venv/bin/activate # Windows source venv\Scripts\activate #或 source venv/Scripts/activate ``` ```bash #安装运行所需的python包。 pip install -r requirements.txt #或 pip3 install -r requirements.txt ``` ```bash #使用uvicorn运行Gnuboard 6。 #默认情况下使用端口8000。 # Linux uvicorn main:app --reload --host 0.0.0.0 --port 8000 # Windows uvicorn main:app --reload ``` ####如何设置Gnuboard6数据库 1.打开网络浏览器**http://127.0.0.1:8000连接到**。 -对于Windows:在浏览器中http://127.0.0.1:8000或者http://localhost:8000连接到 -对于Linux:在浏览器中http://IP地址:8000 -外部服务器的IP为49.247.14.5http://49.247.14.5:8000请登录。 2.`.env文件不存在。“请继续安装。”导航到安装页面,并显示警告窗口。 3.在安装主页上,您可以查看要安装的单板版本、python版本、FastAPI版本和说明。 4.确认并同意Gnuboard6许可证。 5.进行数据库设置。 -**您可以选择并设置一个数据库,其中包括SQL、PostgreSQL和SQLite**。 -MySQL,PostgreSQL:输入连接所需的信息。 -SQLITE:不需要连接信息,安装时会在根目录中创建数据库文件“sqlite3.db”。 -输入前缀。 -必须输入格式为“{英文+数字}_`”。 -默认值为“g6_”(例如gnuboard6_)。 -检查是否重新安装。(可选) > **Warning** >重新安装将在删除表后重新生成。请注意,现有数据可能会消失。 6.输入管理员信息。根据输入的信息创建管理员帐户。 7.继续安装。安装完成后,将输出“安装完成”语句。 8.从现在开始可以自由使用Gnuboard6。 ### 2. 目录结构 #### admin 包含与管理员相关的文件。 router、template文件和用于设置管理菜单的.json文件所属。 #### bbs 位置为与用户相关的router。根据要求执行各种功能。 #### core 项目的**核心代码**位于此处。包含基本运行所需的代码,包括数据库连接、运行中间件、设置模板引擎等。 ``` core ├—database.py#数据库连接和会话管理 ├&exception.py#设置异常处理类&函数 ├—formclass.py#@dataclass的表单类集合 ├—middleware.py#中间件设置 ├&models.py#数据库模型 ├&plugin.py#插件相关函数 └——template.py#模板引擎设置 ``` #### data data目录是用于存储图像和文件的目录。 初始不存在,安装过程中会自动创建。 #### install 包含与安装相关的文件。包含与安装相关的文件。 #### lib 包含项目中使用的多个函数的目录和文件。 ``` lib ├&captcha#与captcha相关的函数、模板(Google reCAPTCHA v2,v2 invisible) ├&editor#编辑器相关函数,模板(ckeditor4) ├&social#社交登录相关函数(naver、kakao、google、facebook、twitter) ├&board_lib.py#公告栏相关函数 ├&common.py#公共函数 ├-dependenties.py#依赖项函数 ├——member_lib.py#会员相关函数 ├&pbkdf2.py#加密库 ├——point.py#积分函数 ├——template_filters.py#模板过滤函数 ├&template_functions.py#模板输出相关函数集 [9492]&token.py#令牌函数 ``` #### plugin 存储用户创建的独立功能的目录。 1.制作插件 -在“/plugin”文件夹中添加要发布的插件目录。 -请用唯一的名字命名,以免与其他插件重叠。 -根据以下文件配置和“plugin/demo_plugin”目录创建插件。 ``` plugin ├—{插件1} └-admin#管理员路由器&菜单设置 ├─ __init__.py └─ admin_router.py ├—static#css、js、image等静态文件 ├——templates#模板文件 设置用户路由器 ├——___init___.py#插件初始化文件 ├&models.py#数据库模型 ├&plugin_config.py#插件配置文件 ├&readme.txt#插件详细信息 ├—screenshot.png或webp#代表性图像 ├—{插件2} ... └&plugin_states.json#完整的插件信息文件 ``` 2.注册管理员菜单地址 -注册要添加到“plugin_config.py”>“admin_menu”字典的url和name。 -注册的菜单通过“admin>__init__py>register_admin_menu()”函数在管理员菜单中注册。 #### static 存储css、js、image等静态文件的目录。 #### templates 存储模板文件的目录。 可以配置为多个模板,您可以从**管理员页面>模板管理**菜单中更改模板。 ``` templates ├—{模板1} └─ ... ├—{模板2} └─ ... ... ``` -反应型/适应型 -根据“.env”文件中的“IS_RESPONSIVE”设置值,显示为响应型/自适应网站。只有在自适应的情况下,才能创建“templates/{模板}/mobile”目录来单独配置移动屏幕。 -如果没有移动屏幕,将自动显示为响应式(PC)网站。 #### .env(.example.env) 自定义所需的文件。在安装过程中,复制“.example.env”以自动创建“.env”文件。 -“.example.env”是创建“.env”文件的示例文件,建议不要删除。 。安装过程中, #### main.py “项目的起点。”使用uvicorn运行服务器。 ```bash # Linux uvicorn main:app --reload --host 0.0.0.0 --port 8000 # Windows uvicorn main:app --reload ``` #### requirements.txt 记录项目所需库的文件。可以通过命令自动安装。 ```bash pip install -r requirements.txt ``` ### 3. 设置 可以通过修改安装后创建的“.env”文件来更改用户设置。 -True/False必须作为字符串输入。 -有关完整设置,请参阅文件“.env.example”。 > **Note** >更改设置后,服务器必须重新启动才能正常运行。 ####数据库设置 ```bash #sqlite将忽略与连接信息相关的设置值。 # (DB_PASSWORD, DB_HOST, DB_PORT, DB_NAME) #设置表名前缀 DB_TABLE_PREFIX = "g6_" # mysql, postgresql, sqlite DB_ENGINE = "" DB_USER = "username" DB_PASSWORD = "" DB_HOST = "" DB_PORT = "" DB_NAME = "" DB_CHARSET = "utf8" ``` ####设置电子邮件发送 ```bash SMTP_SERVER="localhost" SMTP_PORT=25 #测试邮件时,必须输入发送的用户名和电子邮件地址。 SMTP_USERNAME="account@your-domain.com" SMTP_PASSWORD="" #示例)设置NAVER邮件 # SMTP_SERVER="smtp.naver.com" #SMTP_PORT=465#需要安全连接(SSL) #SMTP_USERNAME=“NAVER登录ID” #SMTP_PASSWORD=“NAVER登录密码” ``` ####设置管理员主题 ```bash #设置管理员主题 #管理员主题必须位于/admin/templates/{主题}中。 #如果未输入主题名称,则应用默认主题(basic)。 ADMIN_THEME = "basic" ``` ####设置图像 ```bash #是否转换图像大小 UPLOAD_IMAGE_RESIZE = "False" #MB映像上传容量(默认为20MB) UPLOAD_IMAGE_SIZE_LIMIT = 20 #(0~100)default80图像上传质量(jpg) UPLOAD_IMAGE_QUALITY = 80 #UPLOAD_IMAGE_RESIZE为True,如果大于设置的值,则转换大小。 #px图像上传大小转换宽度大小 UPLOAD_IMAGE_RESIZE_WIDTH = 1200 #px图像上传大小转换垂直大小 UPLOAD_IMAGE_RESIZE_HEIGHT = 2800 ``` ####其他设置 ```bash #设置调试模式(真/假) APP_IS_DEBUG = "False" #如何显示网站(True/False) #“True”(默认):响应式网站(注意:仅提供响应式模板) #“False”:适应性网站 IS_RESPONSIVE = "True" #www.gnuboard.com和gnuboard.com域被认为是不同的域。 #要共享Cookie,请输入.gnuboard.com。 #如果不在此处输入,www上的域和其他域将无法共享Cookie。 #可以解除登录。 COOKIE_DOMAIN = "" ```