用python+sqlite3+flask编写一个信息管理系统
时间: 2024-01-15 18:03:38 浏览: 245
好的,下面是一个简单的信息管理系统的代码实现,使用的是Python的Flask框架和SQLite3数据库。这个信息管理系统可以添加、删除、修改和查询用户信息,包括姓名、年龄和性别。
1. 创建数据库和表格
首先需要创建一个SQLite3数据库,并创建一个名为“users”的表格,用来存储用户信息。表格包括id、name、age和gender四个字段。
```sql
CREATE TABLE users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
age INTEGER NOT NULL,
gender TEXT NOT NULL
);
```
2. 安装依赖库
需要安装Flask和SQLite3库,可以使用pip命令进行安装。
```python
pip install flask
pip install sqlite3
```
3. 编写Flask应用程序
```python
from flask import Flask, render_template, request, redirect, url_for, flash
import sqlite3
app = Flask(__name__)
app.secret_key = 'secret_key'
# 连接数据库
def get_db():
conn = sqlite3.connect('users.db')
conn.row_factory = sqlite3.Row
return conn
# 关闭数据库
def close_db(e=None):
db = get_db()
db.close()
# 创建表格
def init_db():
with app.app_context():
db = get_db()
with app.open_resource('schema.sql', mode='r') as f:
db.cursor().executescript(f.read())
db.commit()
# 插入数据
def insert_data(name, age, gender):
db = get_db()
db.execute('INSERT INTO users (name, age, gender) VALUES (?, ?, ?)', (name, age, gender))
db.commit()
# 查询数据
def select_data():
db = get_db()
users = db.execute('SELECT * FROM users').fetchall()
return users
# 更新数据
def update_data(id, name, age, gender):
db = get_db()
db.execute('UPDATE users SET name = ?, age = ?, gender = ? WHERE id = ?', (name, age, gender, id))
db.commit()
# 删除数据
def delete_data(id):
db = get_db()
db.execute('DELETE FROM users WHERE id = ?', (id,))
db.commit()
# 显示用户信息列表
@app.route('/')
def show_users():
users = select_data()
return render_template('show_users.html', users=users)
# 添加用户信息
@app.route('/add_user', methods=['GET', 'POST'])
def add_user():
if request.method == 'POST':
name = request.form['name']
age = request.form['age']
gender = request.form['gender']
if not name:
flash('姓名不能为空!')
elif not age:
flash('年龄不能为空!')
elif not gender:
flash('性别不能为空!')
else:
insert_data(name, age, gender)
return redirect(url_for('show_users'))
return render_template('add_user.html')
# 编辑用户信息
@app.route('/edit_user/<int:id>', methods=['GET', 'POST'])
def edit_user(id):
user = get_db().execute('SELECT * FROM users WHERE id = ?', (id,)).fetchone()
if request.method == 'POST':
name = request.form['name']
age = request.form['age']
gender = request.form['gender']
if not name:
flash('姓名不能为空!')
elif not age:
flash('年龄不能为空!')
elif not gender:
flash('性别不能为空!')
else:
update_data(id, name, age, gender)
return redirect(url_for('show_users'))
return render_template('edit_user.html', user=user)
# 删除用户信息
@app.route('/delete_user/<int:id>')
def delete_user(id):
delete_data(id)
return redirect(url_for('show_users'))
if __name__ == '__main__':
app.run(debug=True)
```
4. 创建HTML模板
创建三个HTML模板,分别用于显示用户信息列表、添加用户信息和编辑用户信息。这里只显示部分代码。
show_users.html
```html
<table>
<thead>
<tr>
<th>ID</th>
<th>姓名</th>
<th>年龄</th>
<th>性别</th>
<th>操作</th>
</tr>
</thead>
<tbody>
{% for user in users %}
<tr>
<td>{{ user['id'] }}</td>
<td>{{ user['name'] }}</td>
<td>{{ user['age'] }}</td>
<td>{{ user['gender'] }}</td>
<td>
<a href="{{ url_for('edit_user', id=user['id']) }}">编辑</a>
<a href="{{ url_for('delete_user', id=user['id']) }}" onclick="return confirm('确认删除?')">删除</a>
</td>
</tr>
{% endfor %}
</tbody>
</table>
```
add_user.html
```html
<form method="post">
<div>
<label for="name">姓名:</label>
<input type="text" id="name" name="name">
</div>
<div>
<label for="age">年龄:</label>
<input type="text" id="age" name="age">
</div>
<div>
<label for="gender">性别:</label>
<input type="text" id="gender" name="gender">
</div>
<div>
<input type="submit" value="添加">
</div>
</form>
```
edit_user.html
```html
<form method="post">
<div>
<label for="name">姓名:</label>
<input type="text" id="name" name="name" value="{{ user['name'] }}">
</div>
<div>
<label for="age">年龄:</label>
<input type="text" id="age" name="age" value="{{ user['age'] }}">
</div>
<div>
<label for="gender">性别:</label>
<input type="text" id="gender" name="gender" value="{{ user['gender'] }}">
</div>
<div>
<input type="submit" value="保存">
</div>
</form>
```
5. 运行应用程序
在终端中运行以下命令启动应用程序:
```python
python app.py
```
然后在浏览器中访问http://localhost:5000/即可看到信息管理系统的界面。可以添加、删除、修改和查询用户信息。
阅读全文