大家好!今天我们来聊聊怎么用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啦!希望对大家有帮助。