科研管理系统




CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
email VARCHAR(100) UNIQUE NOT NULL
);
CREATE TABLE papers (
id INT AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(255) NOT NULL,
publication_date DATE,
author_id INT,
FOREIGN KEY (author_id) REFERENCES users(id)
);
CREATE TABLE patents (
id INT AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(255) NOT NULL,
filing_date DATE,
inventor_id INT,
FOREIGN KEY (inventor_id) REFERENCES users(id)
);
CREATE TABLE projects (
id INT AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(255) NOT NULL,
start_date DATE,
end_date DATE,
leader_id INT,
FOREIGN KEY (leader_id) REFERENCES users(id)
);
from flask import Flask, request, jsonify
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://username:password@localhost/dbname'
db = SQLAlchemy(app)
class Paper(db.Model):
id = db.Column(db.Integer, primary_key=True)
title = db.Column(db.String(255), nullable=False)
publication_date = db.Column(db.Date, nullable=True)
author_id = db.Column(db.Integer, db.ForeignKey('users.id'), nullable=False)
@app.route('/add_paper', methods=['POST'])
def add_paper():
data = request.get_json()
new_paper = Paper(
title=data['title'],
publication_date=data['publication_date'],
author_id=data['author_id']
)
db.session.add(new_paper)
db.session.commit()
return jsonify({"message": "Paper added successfully"}), 201