1、定义两个html贝面,一个是基模板,一个是子模版,子模版继承基模板2、默认进入基模板,数据库交互的时候数据显示在子模版里面3、创建两个表,1、用户表、2、图片表,图片表与用户表通过用户id进行关联4、要进行数据的增删改查
时间: 2023-12-31 11:04:09 浏览: 70
首先,需要使用模板引擎来实现基模板和子模板的继承,比如使用jinja2模板引擎。接下来,需要安装相关的数据库驱动,比如MySQLdb或者pymysql。
1. 定义基模板base.html和子模板child.html,基模板里面定义了公共的HTML结构和样式,子模板继承基模板,并在适当的位置添加自己的内容。
base.html
```
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>{% block title %}{% endblock %}</title>
</head>
<body>
<div class="container">
{% block content %}
{% endblock %}
</div>
</body>
</html>
```
child.html
```
{% extends "base.html" %}
{% block title %}子模板{% endblock %}
{% block content %}
<div class="row">
<div class="col-md-6">
<h2>用户列表</h2>
<table class="table table-bordered">
<thead>
<tr>
<th>ID</th>
<th>姓名</th>
<th>邮箱</th>
</tr>
</thead>
<tbody>
{% for user in users %}
<tr>
<td>{{ user.id }}</td>
<td>{{ user.name }}</td>
<td>{{ user.email }}</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
<div class="col-md-6">
<h2>图片列表</h2>
<table class="table table-bordered">
<thead>
<tr>
<th>ID</th>
<th>名称</th>
<th>用户ID</th>
</tr>
</thead>
<tbody>
{% for image in images %}
<tr>
<td>{{ image.id }}</td>
<td>{{ image.name }}</td>
<td>{{ image.user_id }}</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
</div>
{% endblock %}
```
2. 在基模板中定义一个占位符{% block content %}{% endblock %},在子模板中继承基模板,并在占位符中添加自己的内容。
3. 创建两个表,一个是用户表,一个是图片表,图片表与用户表通过用户ID进行关联。可以使用SQLAlchemy ORM框架来实现数据模型的定义和数据库的交互。
```python
from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy()
class User(db.Model):
__tablename__ = 'users'
id = db.Column('id', db.Integer, primary_key=True)
name = db.Column('name', db.String(100))
email = db.Column('email', db.String(100))
class Image(db.Model):
__tablename__ = 'images'
id = db.Column('id', db.Integer, primary_key=True)
name = db.Column('name', db.String(100))
user_id = db.Column('user_id', db.Integer, db.ForeignKey('users.id'))
user = db.relationship('User', backref='images')
```
4. 实现数据的增删改查功能,可以使用Flask框架提供的路由来实现。比如,实现一个用户列表的路由/user/list,该路由会从数据库中查询用户列表,并将用户列表传递给子模板进行展示。
```python
@app.route('/user/list')
def user_list():
users = User.query.all()
images = Image.query.all()
return render_template('child.html', users=users, images=images)
```
同时,还需要实现其他的路由,比如添加用户、修改用户、删除用户等功能,这些路由的实现方式类似,需要对数据库进行相应的增删改查操作。
阅读全文