unn建站,网站建设与管理试卷A,江苏工程建设信息网,芜湖推广公司1 安装
首先#xff0c;确保您安装了 Flask 和 SQLAlchemy#xff0c;以及 MySQL 的驱动程序#xff08;例如 mysql-connector-python 或 PyMySQL#xff09;#xff1a;
pip install Flask Flask-SQLAlchemy mysql-connector-python2 创建项目结构
创建一个简单的项目…1 安装
首先确保您安装了 Flask 和 SQLAlchemy以及 MySQL 的驱动程序例如 mysql-connector-python 或 PyMySQL
pip install Flask Flask-SQLAlchemy mysql-connector-python2 创建项目结构
创建一个简单的项目结构
my_flask_app/
│
├── app.py
└── config.py3 配置文件 (config.py)
在 config.py 中设置 MySQL 数据库的连接信息
class Config:SQLALCHEMY_DATABASE_URI mysqlmysqlconnector://username:passwordlocalhost/db_nameSQLALCHEMY_TRACK_MODIFICATIONS False请将 username、password 和 db_name 替换为您的 MySQL 数据库凭据。
4 创建应用和模型 (app.py)
在 app.py 中实现创建表的功能
from flask import Flask, request, jsonify
from flask_sqlalchemy import SQLAlchemy
from config import Configapp Flask(__name__)
app.config.from_object(Config)
db SQLAlchemy(app)# 定义父表 Base
class Base(db.Model):__tablename__ baseid db.Column(db.Integer, primary_keyTrue)name db.Column(db.String(50), nullableFalse)age db.Column(db.Integer, nullableFalse)# 创建基础表
app.before_first_request
def create_base_table():db.create_all() # 创建所有模型的表包括 Baseapp.route(/create_table/table_name, methods[POST])
def create_table(table_name):# 使用动态模型创建与 Base 相同的表class DynamicTable(db.Model):__tablename__ table_name # 设置表名为传入的参数id db.Column(db.Integer, primary_keyTrue)name db.Column(db.String(50), nullableFalse)age db.Column(db.Integer, nullableFalse)# 创建动态表db.create_all() # 创建新表return jsonify({message: fTable {table_name} created successfully!})app.route(/add_base, methods[POST])
def add_base():data request.jsonnew_entry Base(namedata[name], agedata[age])db.session.add(new_entry)db.session.commit()return jsonify({message: Entry added to base table!})if __name__ __main__:app.run(debugTrue)5 运行应用
确保所有代码已保存然后在项目目录中运行应用
python app.py6 测试功能
您可以使用 Postman 或 curl 来测试 API。
创建 base 表在应用启动时自动创建 访问 http://127.0.0.1:5000/ 不需要任何操作。添加 base 表中的数据
curl -X POST -H Content-Type: application/json -d {name: John Doe, age: 30} http://127.0.0.1:5000/add_base根据给定的表名创建新表
curl -X POST http://127.0.0.1:5000/create_table/new_table_name将 new_table_name 替换为您希望创建的表名。