Mako模板引擎与Python中的数据库交互
发布时间:2023-12-25 23:41:45
Mako是一种模板引擎,用于将动态数据填充到HTML或其他文本模板中。它与Python中的数据库交互非常方便,并且可以使用Mako的模板注释语法来执行数据库查询和操作。
下面是一个示例,演示了Mako模板引擎与Python中的数据库交互的用法。
首先,你需要安装并导入Mako模板引擎和Python中的数据库模块,比如SQLAlchemy。
from mako.template import Template from sqlalchemy import create_engine, Column, String, Integer from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.orm import sessionmaker
然后,你需要创建一个与数据库的连接,这里使用SQLite作为示例数据库。
engine = create_engine('sqlite:///example.db')
Session = sessionmaker(bind=engine)
session = Session()
接下来,创建一个Mako模板。
template = Template("""
<html>
<head>
<title>Users</title>
</head>
<body>
<h1>Users</h1>
<ul>
% for user in users:
<li>${user.name}</li>
% endfor
</ul>
</body>
</html>
""")
创建一个数据库模型,并将其映射到数据库中的表。
Base = declarative_base()
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
name = Column(String)
向数据库中添加数据。
user1 = User(name='Alice') user2 = User(name='Bob') session.add(user1) session.add(user2) session.commit()
从数据库中获取数据并将其填充到模板中。
users = session.query(User).all() rendered_template = template.render(users=users)
最后,将渲染后的模板输出为HTML文件。
with open('output.html', 'w') as file:
file.write(rendered_template)
现在,你可以打开output.html文件,查看由Mako模板引擎生成的HTML页面,其中包含了从数据库中获取的用户数据。
这个示例展示了如何使用Mako模板引擎与Python中的数据库交互。你可以根据实际需求进行修改和扩展。无论是显示数据库中的数据,还是执行更新和删除操作,Mako模板引擎都可以很方便地与Python中的数据库交互。
