首页 > 数据库 >FastAPI-MySQL-Cookie代码实现

FastAPI-MySQL-Cookie代码实现

时间:2024-04-13 19:11:53浏览次数:28  
标签:sqlalchemy get FastAPI db Cookie MySQL import password id

连接数据库

from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
from urllib.parse import quote_plus

password = '123456'
encoded_password = quote_plus(password)
SQLALCHEMY_DATABASE_URL = f'mysql+pymysql://root:{encoded_password}@127.0.0.1:3306/cookie_logging'


engine = create_engine(
    SQLALCHEMY_DATABASE_URL, echo=True
)
SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)

Base = declarative_base()

def get_db():
    db = SessionLocal()
    try:
        yield db
    finally:
        db.close()

建模

from sqlalchemy import Boolean, Column, ForeignKey, Integer, String

from .database import Base

class Users(Base):
    __tablename__ = 'user'
    username = Column(String)
    id = Column(Integer, primary_key=True)
    password = Column(String)

接口

from typing import Annotated
import uvicorn
from fastapi import Cookie, FastAPI,Depends
from database import get_db
from fastapi.encoders import jsonable_encoder
from sqlalchemy.orm import Session
from logging_test import alchemy_models

app = FastAPI()


@app.get("/logging/")
async def read_items(id: Annotated[int | None, Cookie()], db: Session = Depends(get_db),):
    response = db.query(alchemy_models.Users).filter(alchemy_models.Users.id == id).first()
    if response:
        return jsonable_encoder(response)
    else:
        return jsonable_encoder({'error': f'{id} not found'})

tips

swagger文档发送cookie会有异常,可以使用postman进行测试

标签:sqlalchemy,get,FastAPI,db,Cookie,MySQL,import,password,id
From: https://www.cnblogs.com/Melnis/p/18133227

相关文章

  • 16、数据库加固-mysql 加固
    1.修改DBA登录密码shell下执行:mysqladmin-urootpassword非首次修改:mysqladmin-urootpassword-p原密码在mysql下执行:updateusersetpassword=password('密码')whereuser='root';flushprivileges;2.删除默认数据库和用户删除测试库showdatabases......
  • MySQL安装教程
    MySQL安装1.安装1).双击官方下来的安装包文件2).根据安装提示进行安装安装MySQL的相关组件,这个过程可能需要耗时几分钟,耐心等待。输入MySQL中root用户的密码,一定记得记住该密码2.配置安装好MySQL之后,还需要配置环境变量,这样才可以在任何目录下连接MySQL。......
  • 安装 MySQL 5.7
    安装MySQL5.7‍CentOS查看系统中是否自带安装MySQL[root@localhost~]#yumlistinstalled|grepmysql[root@localhost~]#[root@node01~]#yumlistinstalled|grepmysqlmysql-libs.x86_645.1.71-1.el6@anaconda-CentOS-201311272149.x86_64/6.5[r......
  • 允许任意地址访问 MySQL 数据库 adonis 的新用户
    问题ayear@DESKTOP-GPCA3B0:~/AdonisJS$nodeace.jsmigration:run[error]Host'DESKTOP-GPCA3B0'isnotallowedtoconnecttothisMySQLserveratPacket.asError(/home/ayear/AdonisJS/node_modules/.pnpm/[email protected]/node_modules/mysql2/......
  • Linux下使用docker部署mysql(一)
    1.拉取dockerdockerpullmysql:5.7 2.配置挂载目录sudomkdir-p/docker_data/mysql/datasudomkdir-p/docker_data/mysql/confsudomkdir-p/docker_data/mysql/conf/conf.dsudomkdir-p/docker_data/mysql/conf/mysql.conf.dsudomkdir-p/docker_data/mysql/logs......
  • MySQL入门
    相关概念数据;描述数据特征的符号记录:事物一系列典型的特征表:文件库:文件夹数据库管理软件:mysql,oracle,db2,SQLserver数据库服务器:运行数据库管理软件的计算机统一字符编码统一客户端,服务端,mysqld的字符编码为utf8SQL语句操作文件夹(库)增:createdatabasedb1charset......
  • MySQL事务状态判断
    MySQL事务状态判断前置MySQL的默认隔离级别是:可重复读(REPEATABLEREAD)可重复读隔离级别下,事务中的SELECT操作会看到快照数据,也就是事务开始时刻的数据状态。此隔离级别可以防止脏读和不可重复读,但可能会有幻读的问题出现。问题描述表结构createtabledjj(namev......
  • MySQL 04-EMOJI 表情与 UTF8MB4 的故事
    拓展阅读MySQLViewMySQLtruncatetable与delete清空表的区别和坑MySQLRulermysql日常开发规范MySQLdatetimetimestamp以及如何自动更新,如何实现范围查询MySQL06mysql如何实现类似oracle的mergeintoMySQL05MySQL入门教程(MySQLtutorialbook)MySQL04-E......
  • FastAPI: 测试lifespan特性(转)
    addbyzhj:实践出真知,文章写得真不错,自己测试这些条件原文:FastAPI:experimentlifespanfeatureInitInFastAPI,oneofwayscreatingasharedresourceandlivingaslongasapplicationisupisusing lifespan featureinFastAPI.Thislifespanfeaturecandoc......
  • linux环境安装——mysql集群安装复习——主从复制
    1、首先安装mysql: mkdir-p/soft/mysql8mkdir-p/evir/mysql8执行上传文件操作rpm-qa|grepmariadb查询是否有这个文件rpm-e--nodepsmariadb-libs进行删除rpm-qa|grepmariadb查询这个文件是否删干净tar-xf/soft/my......