使用Flask Web框架实现一个Web版的通讯录,用文件实现数据存取。通讯录的字段有学号、姓名、手机号、电子邮箱,可以实现添加、存储和查找。
时间: 2024-06-09 22:04:43 浏览: 81
用文件存储10个学生的姓名、学号、手机号、地址,可通过姓名或者学号查找
5星 · 资源好评率100%
好的,下面是一个简单的 Flask Web 应用程序,实现一个通讯录的增加、存储和查找功能。使用文件实现数据存储,数据格式为 CSV 格式。
首先,在你的项目文件夹下,新建一个名为 `templates` 的文件夹,用于存放 HTML 模板。在 `templates` 文件夹下,新建一个名为 `index.html` 的文件,代码如下:
```html
<!DOCTYPE html>
<html>
<head>
<title>通讯录</title>
</head>
<body>
<h1>通讯录</h1>
<form method="POST" action="/add_contact">
<label>学号:</label>
<input type="text" name="id"><br><br>
<label>姓名:</label>
<input type="text" name="name"><br><br>
<label>手机号:</label>
<input type="text" name="phone"><br><br>
<label>电子邮箱:</label>
<input type="text" name="email"><br><br>
<input type="submit" value="添加">
</form>
<br><br>
<form method="POST" action="/search_contact">
<label>学号:</label>
<input type="text" name="id"><br><br>
<input type="submit" value="查找">
</form>
</body>
</html>
```
该 HTML 模板包含一个表单,用于添加联系人,以及一个表单,用于查找联系人。
接下来,在项目文件夹下,新建一个名为 `app.py` 的 Python 文件,代码如下:
```python
from flask import Flask, render_template, request
import csv
app = Flask(__name__)
@app.route('/')
def index():
return render_template('index.html')
@app.route('/add_contact', methods=['POST'])
def add_contact():
id = request.form['id']
name = request.form['name']
phone = request.form['phone']
email = request.form['email']
with open('contacts.csv', 'a', newline='') as csvfile:
writer = csv.writer(csvfile)
writer.writerow([id, name, phone, email])
return '添加成功!'
@app.route('/search_contact', methods=['POST'])
def search_contact():
id = request.form['id']
with open('contacts.csv', 'r') as csvfile:
reader = csv.reader(csvfile)
for row in reader:
if row[0] == id:
return f'姓名:{row[1]},手机号:{row[2]},电子邮箱:{row[3]}'
return '查无此人!'
if __name__ == '__main__':
app.run()
```
该 Python 文件使用 Flask Web 框架实现了一个简单的通讯录 Web 应用程序。`index()` 函数渲染了 `index.html` 模板,`add_contact()` 函数从表单中获取联系人信息,并将其写入 CSV 文件中,`search_contact()` 函数从表单中获取学号,查找 CSV 文件中的联系人信息,并返回结果。
最后,在你的项目文件夹下,新建一个名为 `contacts.csv` 的 CSV 文件,用于存储联系人信息。
启动该应用程序,打开浏览器,在地址栏输入 `http://localhost:5000` 即可访问该应用程序。
阅读全文