大家好!今天我们来聊聊怎么用Python做一个科研成果管理系统App。这个系统能帮助科研人员记录自己的研究成果,比如论文、专利或者项目进展啥的。听起来是不是很酷?那咱们就直接开干吧!
首先,你需要安装几个东西。打开你的终端,输入`pip install flask sqlite3`。这两个库我们都会用到,一个是Flask用来建服务器,另一个是SQLite用来存数据。
先说数据库部分。我们要创建一个表来存放科研成果的信息。打开你喜欢的编辑器,新建一个文件叫`database.py`,然后写上这些代码:
import sqlite3
def init_db():
conn = sqlite3.connect('results.db')
cursor = conn.cursor()
cursor.execute('''
CREATE TABLE IF NOT EXISTS results (
id INTEGER PRIMARY KEY AUTOINCREMENT,
title TEXT NOT NULL,
author TEXT NOT NULL,
year INT,
type TEXT
)
''')
conn.commit()
conn.close()
if __name__ == '__main__':
init_db()
这段代码会创建一个名为`results.db`的数据库文件,并且在其中建立一个名为`results`的表格,用于存储成果信息。

接下来就是Flask的部分了。我们用它来搭建一个简单的Web页面让用户添加或查看成果。创建一个新的文件`app.py`,填入以下代码:
from flask import Flask, request, jsonify
from database import *
app = Flask(__name__)
@app.route('/add_result', methods=['POST'])
def add_result():
data = request.get_json()
title = data['title']
author = data['author']
year = data['year']
result_type = data['type']
conn = sqlite3.connect('results.db')
cursor = conn.cursor()
cursor.execute('INSERT INTO results (title, author, year, type) VALUES (?, ?, ?, ?)',
(title, author, year, result_type))
conn.commit()
conn.close()
return jsonify({"message": "Result added successfully!"})
@app.route('/get_results', methods=['GET'])
def get_results():
conn = sqlite3.connect('results.db')
cursor = conn.cursor()
cursor.execute('SELECT * FROM results')
rows = cursor.fetchall()
conn.close()
results = [{"id": row[0], "title": row[1], "author": row[2], "year": row[3], "type": row[4]} for row in rows]
return jsonify(results)
if __name__ == '__main__':
app.run(debug=True)
这段代码定义了两个接口:一个是用来添加成果的`/add_result`,另一个是用来获取所有成果的`/get_results`。你可以通过Postman或者其他工具测试它们。
最后,启动你的App,运行`python app.py`,然后访问`http://localhost:5000/get_results`看看效果。
好了,这就是一个非常基础但实用的科研成果管理系统App啦!希望对大家有帮助。
