gin 消息闪现自己实现
## gin 消息闪现自己实现 定义一个写入和读取的函数 ```go // 给予闪现消息 // 参数:gin对象,消息内容str,类型str func FlashSet(c *gin.Context, msg string, msgtype string) { //创建消息,用冒号分开 value := msg + ":" + msgtype c.SetCookie("msg", value, 40, "/", Domain, fa
## gin 消息闪现自己实现 定义一个写入和读取的函数 ```go // 给予闪现消息 // 参数:gin对象,消息内容str,类型str func FlashSet(c *gin.Context, msg string, msgtype string) { //创建消息,用冒号分开 value := msg + ":" + msgtype c.SetCookie("msg", value, 40, "/", Domain, fa
## gin+jwt验证,cookie ### cookie示范 ```go //设置cookie //字段名,内容,有效期(秒),生效路径,有效域,仅https,仅HTTP访问Cookie(js无法访问) c.SetCookie("token", tokenString, 680400, "/", "127.0.0.1", false, true) //读取cookie tokenString, _ := c.Cookie("tok
## GO session状态管理,登录注销 `go get -u github.com/gin-contrib/sessions` ### 初始化 ```go import ( "github.com/gin-contrib/sessions" "github.com/gin-contrib/sessions/cookie" //训责cookie为存储 ) r := gin.Default() //
## gin+templ实现高性能ssr网页渲染 templ文档:https://templ.guide/ 安装templ插件前提: `go get -tool github.com/a-h/templ/cmd/templ@latest` # 安装 templ 命令行 `go tool templ` ## vscode插件 `templ` 作者a-h `Templ Go To Definition` 可选插件 ## tailwin
## docker基础 ## 下载地址 桌面版:https://www.docker.com/products/docker-desktop 服务器版:https://docs.docker.com/engine/install/#server windwos需要开启虚拟化和WSL2 控制面板->程序->启用或关闭 windows 功能,开启 Windows 虚拟化和 Linux 子系统(WSL2) ## 搜索公共镜像 https:
## Fastapi 基础 文档:https://fastapi.tiangolo.com/zh/ `pip install fastapi uvicorn` `pip install pyjwt` jwt `pip install passlib[bcrypt]` 密码哈希 `pip install asyncpg` 如果使用异步操作pg数据库要安装 `python-multipart` 如果要实现上传文件需要安装 ```python
## python基础 检查python是否安装和版本,部分系统可能需要使用python3 --version `python3 --version` #最新版可能变成了`py --version` `pip3 --version` ## 创建虚拟环境 `python3 -m venv venv` //创建一个虚拟环境指定名字 `./venv/Scripts/activate` //windows 上激活虚拟环境 //window
## celery任务队列 文档:https://docs.celeryq.dev/en/stable/index.html `pip install celery` `pip install celery-once` 防止任务重复,目前用不上 协程支持 `pip install gevent` ## 基础知识教程 **开发时的数据库注意** celery不支持异步方法,仅支持同步,因此要时刻注意维护两个数据库操作版本,各自的连接
## sqlalchemy ORM异步 **注意事项** sqlalchemy的查询结果都要使用 result.scalar()获取模型实列: result.scalar() 单个对象 result.scalars().all() 列表形式 result.fetchone() 元组形式 result.to_dict() 字典 定义的模型都需要定义一个转化为字典的方法来传递给前端: def to_dict(self):
## python多线程、异步 ## 异步编程 ```python import asyncio import time # 一定义一个阻塞同步函数 def blocking_task(seconds: int): time.sleep(seconds) print(f"同步阻塞任务:睡眠了 {seconds} 秒") # 定义一个异步函数 async def say_hello(name: str) -> None
## flask websocket websocket使用自定义标识连接(服务端客户端使用相同标识) 通常发送和接收,使用两个不同信道,不然会触发无线循环 send #简单文本发送 emit #复杂数据发送 \_\_init\_\_.py: ```python #这里是初始化设置,包括创建app实例,注册蓝图,配置app,配置peewee from flask import Flask from config import Con
## python八股文 [toc] ## 保留字段 ```python def # 用于定义一个函数 if # 条件语句,用于根据条件执行代码块 elif # “else if”的简写,多个条件分支中的一个 and # 逻辑与操作符,两个操作数都为真时,结果才为真 not # 逻辑非操作符,将布尔值取反 or # 逻辑或操作符,只要任一操作数为真,结果就为真 assert # 调试工具,用于验证条件,如果条件为假,触发异常