第二节建立数据库表并插入初始化数据

<meta charset="utf-8">
<?php 
	// 查询分页
	// 建库建表
	require_once("db_config.php");
	mysqli_query($link,"create database stu");
	mysqli_query($link,"use stu");
	mysqli_query($link,'drop table user');
	$query_string="create table user(name char(50),address char(50),password char(50))ENGINE MyISAM DEFAULT CHARSET utf8";
	mysqli_query($link,$query_string);
	echo mysqli_error($link);
	$query_string="insert into user(name,address,password) values ('mike','cd','1')";
	mysqli_query($link,$query_string);
	echo mysqli_error($link);
?>
FastAPI是一个轻量级的Web框架,结合了Python的简单性和Type hints的强大功能,用于构建RESTful APIs。为了初始化数据库结构,你可以使用SQLAlchemy,这是一个广泛使用的Python ORM工具,它可以让你像操作Python对象一样操作数据库。 以下是使用FastAPI和SQLAlchemy初始化数据库结构的基本步骤: 1. **安装依赖**: 首先,你需要在项目中安装SQLAlchemy以及对应的数据库驱动,例如`sqlalchemy`和`psycopg2`(针对PostgreSQL)等。 ```bash pip install sqlalchemy psycopg2-binary ``` 2. **创建数据模型**(ORM模型): 定义每个数据库作为Python类,继承自`Base`,并在类中定义相应的字段。 ```python from sqlalchemy import Column, Integer, String from sqlalchemy.ext.declarative import declarative_base Base = declarative_base() class User(Base): __tablename__ = 'users' id = Column(Integer, primary_key=True) username = Column(String, unique=True) email = Column(String, unique=True) ``` 3. **配置数据库连接**: 在FastAPI应用中,设置数据库连接,包括引擎、URI等信息。 ```python from sqlalchemy import create_engine engine = create_engine('postgresql://username:password@localhost/dbname') Base.metadata.create_all(engine) # 创建所有结构 ``` 4. **使用**: 现在你可以使用这个数据库连接,并通过ORM操作。例如,插入新记录: ```python from sqlalchemy.orm import sessionmaker SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine) def get_db(): db = SessionLocal() try: yield db finally: db.close() @app.post("/users/") async def create_user(user: User): with get_db() as db: new_user = User(username=user.username, email=user.email) db.add(new_user) db.commit() ``` 当启动FastAPI服务并运行时,它会在第一次运行时自动根据定义的数据模型创建数据库结构。如果你需要更改结构,只需要修改数据模型即可,无需额外的操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值