当前位置: 首页 > news >正文

【AI图像生成网站Golang】项目介绍

AI图像生成网站

目录

一、项目介绍

二、雪花算法

三、JWT认证与令牌桶算法

四、项目架构

五、图床上传与图像生成API搭建

六、项目测试与调试(等待更新)

简介

        本教程将手把手教你如何从零开始构建一个简单的AI图像生成网站。网站主要包含用户注册、图像生成、分类管理等功能,使用Golang作为后端开发语言,前端采用Vue.js,数据存储使用MySQL。通过本项目,您将学习如何使用Go语言搭建API服务,如何与外部图床和AI图像生成API集成,最终实现一个简单的AI图像生成网站。

技术栈: Golang + Vue.js + MySQL

项目地址https://github.com/Gezelligheid1010/Image-Processing-Tool-with-Go-AI

网站功能概览

本项目实现的页面结构和功能如下:
在这里插入图片描述项目共有六个页面,分别实现了注册登录功能、作品分组管理和作品管理,以及图像生成功能。

用户注册与登录

        提供新用户注册和已有用户登录功能,支持表单验证,确保用户数据的有效性和安全性。登录成功后生成JWT令牌,用户可在授权状态下访问其他页面。
在这里插入图片描述
在这里插入图片描述

分组管理

        显示用户创建的所有分类。用户可以查看已创建的分组及其中作品的概览,并可通过点击进入分组详情页查看具体内容。
在这里插入图片描述

创建分组

        允许用户自定义创建新的分组,为图像生成作品进行分组管理。用户可输入分组名称、描述和封面,并提交保存到数据库。

在这里插入图片描述

作品管理

        进入具体分组后,用户可浏览该分组下的所有作品,支持缩略图展示和详细信息查看,方便用户管理和查看作品内容。

在这里插入图片描述

创建作品页面

        用户可以在此页面上传图像文件,调用图床API上传图像并生成URL,将URL传递给AI图像生成API生成新作品。生成的作品将存储在指定分类中。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

导航与路由

        设计清晰、直观的页面导航和路由,使用户可以快速切换页面。网站主要用于实现功能的路由包括:

  • 注册/登录后的主页跳转:用户完成注册或登录后,导航至分组展示页面。
  • 分组展示与详情页跳转:点击分组展示页面中的分组项目,即可跳转到对应的分组详情页。
  • 分组创建与作品创建导航:通过创建按钮,用户可直接进入分组创建和作品创建页面,完成图像生成和分组管理。
  • 分组删除与作品删除导航:通过删除按钮,用户可直接进入分组创建和作品创建页面,完成图像生成和分类管理。

以下是项目中所涉及的所有路由介绍:

路径请求方法功能描述中间件备注
/GET加载主页,显示HTML页面主页入口,提供基本的HTML内容
/staticStatic加载静态文件主要用于加载CSS、JS、图片等前端资源
/swagger/*anyGET注册Swagger文档Swagger用于自动生成和查看API文档,方便开发和测试
/api/v1/loginPOST用户登录限流中间件处理用户登录请求,验证用户凭证并返回Token
/api/v1/signupPOST用户注册限流中间件处理新用户注册信息,创建账户
/api/v1/refresh_tokenGET刷新访问令牌限流中间件为已登录用户刷新访问Token,保持登录状态
/api/v1/createCategoryPOST创建分类JWT认证中间件 + 限流中间件用于创建作品分类,便于对作品进行分组
/api/v1/categoryGET获取分类列表JWT认证中间件 + 限流中间件查询所有已创建的分类,返回分类信息列表
/api/v1/categoryDetail/:category_idGET获取分类中的作品JWT认证中间件 + 限流中间件查看指定分类下的作品详情
/api/v1/deleteCategory/:category_idDELETE删除分类JWT认证中间件 + 限流中间件删除指定分类,清理不再需要的分类
/api/v1/deleteWorksDELETE删除作品,传入列表JWT认证中间件 + 限流中间件批量删除指定的作品
/api/v1/uploadWorkPOST上传作品JWT认证中间件 + 限流中间件用户上传作品,保存并处理上传的作品
/api/v1/processImagePOST仅处理图片JWT认证中间件 + 限流中间件接收上传的图片并进行特定的图像处理操作
/debug/pprof/*anyGET注册pprof调试路由pprof为Go语言的性能分析工具,帮助识别瓶颈和优化代码性能
NoRouteAny未知路径返回404对于未匹配的路径返回404响应,提示路径无效
  • 静态文件:用于存储和提供前端资源(如CSS、JS、图片等),加载静态文件可以提高页面加载速度和用户体验。
  • Swagger文档:一种API文档生成和交互工具,可以根据代码生成接口文档,方便开发者查看和测试API,提升开发和调试效率。
  • JWT认证:JWT(JSON Web Token)是一种常用的认证方式,确保访问资源的用户经过身份验证。
  • 限流中间件:通过令牌桶算法限制请求速率,防止服务器资源被恶意占用。
  • pprof调试路由:提供性能分析工具,帮助识别代码中的瓶颈,如内存泄漏、CPU占用高等问题,优化服务器性能。
http://www.lryc.cn/news/486156.html

相关文章:

  • 对称加密算法DES的实现
  • Spring Boot 启动时修改上下文
  • 传奇996_19——常用函数
  • 计算机毕业设计Python+Neo4j知识图谱医疗问答系统 大模型 机器学习 深度学习 人工智能 大数据毕业设计 Python爬虫 Python毕业设计
  • 【Python】如何设置VSCode中的Pylint,消除各种没有必要的警告
  • 游戏引擎学习第14天
  • 关于mysql中的锁
  • 机器学习-4:机器学习的建模流程
  • Android 6年经验面试总结 2024.11.15
  • R语言数据分析可视化——summarytools包的使用
  • 转型一年半,虎牙直播的第二增长曲线喜忧参半
  • makefile笔记
  • Rewar Model的输出(不包含训练)
  • Python调用API翻译Excel中的英语句子并回填数据
  • SQL面试题——抖音SQL面试题 最大在线用户数
  • 前端知识点---Window对象(javascript)了解
  • llama factory lora 微调 qwen2.5 7B Instruct模型
  • 类和对象——拷贝构造函数,赋值运算符重载(C++)
  • Android 关于使用videocompressor库压缩没有声音和异常的问题
  • LeetCode-215.数组中的第K个最大元素
  • 『OpenCV-Python』视频的读取和保存
  • 什么是Spring Boot Actuator
  • 计算机网络:运输层 —— 运输层端口号
  • linux下编译安装memcached
  • 最短路径生成树的数量-黑暗城堡
  • 将已有的MySQL8.0单机架构变成主从复制架构
  • JSON.stringify的应用说明
  • pyflink datastream数据流ds经过一系列转换后转为table,t_env.from_data_stream(ds)
  • vxe-grid table 校验指定行单元格的字段,只校验某个列的字段
  • 【Java多线程】单例模式(饿汉模式和懒汉模式)