Bottle-SQLAlchemy 开源项目教程
bottle-sqlalchemyBottle SQLAlchemy plugin项目地址:https://gitcode.com/gh_mirrors/bo/bottle-sqlalchemy
1. 项目的目录结构及介绍
Bottle-SQLAlchemy 项目的目录结构相对简单,主要包含以下几个部分:
bottle-sqlalchemy/
├── bottle_sqlalchemy/
│ ├── __init__.py
│ ├── manager.py
│ ├── plugin.py
│ └── utils.py
├── examples/
│ ├── __init__.py
│ ├── app.py
│ └── models.py
├── tests/
│ ├── __init__.py
│ ├── conftest.py
│ ├── test_plugin.py
│ └── test_utils.py
├── .gitignore
├── LICENSE
├── README.md
├── requirements.txt
└── setup.py
目录结构介绍
bottle_sqlalchemy/
: 核心代码目录,包含了插件的主要实现。__init__.py
: 初始化文件。manager.py
: 管理器模块,用于管理数据库会话。plugin.py
: 插件核心实现。utils.py
: 工具函数。
examples/
: 示例代码目录,展示了如何使用该插件。__init__.py
: 初始化文件。app.py
: 示例应用入口文件。models.py
: 示例数据库模型。
tests/
: 测试代码目录,包含了插件的单元测试。__init__.py
: 初始化文件。conftest.py
: 测试配置文件。test_plugin.py
: 插件测试文件。test_utils.py
: 工具函数测试文件。
.gitignore
: Git 忽略文件配置。LICENSE
: 项目许可证。README.md
: 项目说明文档。requirements.txt
: 项目依赖文件。setup.py
: 项目安装脚本。
2. 项目的启动文件介绍
在 examples/
目录下的 app.py
文件是项目的启动文件。该文件展示了如何使用 Bottle-SQLAlchemy 插件来创建一个简单的 Web 应用。
from bottle import Bottle, request, response, template
from bottle_sqlalchemy import SQLAlchemyPlugin
from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
Base = declarative_base()
engine = create_engine('sqlite:///:memory:')
DBSession = sessionmaker(bind=engine)
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
name = Column(String)
app = Bottle()
def setup_database():
Base.metadata.create_all(engine)
@app.route('/')
def index():
session = DBSession()
users = session.query(User).all()
return template('<b>Users:</b> {{users}}', users=[user.name for user in users])
@app.route('/add', method='POST')
def add_user():
session = DBSession()
name = request.forms.get('name')
user = User(name=name)
session.add(user)
session.commit()
return {'result': 'success'}
app.install(SQLAlchemyPlugin(engine, Base.metadata, DBSession))
if __name__ == '__main__':
setup_database()
app.run(debug=True, reloader=True)
启动文件介绍
app.py
: 主应用文件,包含了应用的初始化、路由定义和数据库操作。Base
: SQLAlchemy 的基类,用于定义模型。engine
: 数据库引擎。DBSession
: 数据库会话。User
: 用户模型。setup_database()
: 初始化数据库函数。index()
: 首页路由,查询所有用户。add_user()
: 添加用户路由,处理 POST 请求。- `app.install(SQLAlchemyPlugin(engine, Base.metadata, DBSession))
bottle-sqlalchemyBottle SQLAlchemy plugin项目地址:https://gitcode.com/gh_mirrors/bo/bottle-sqlalchemy