当前位置: 首页 > 新闻资讯  > 校友管理系统

构建校友系统的网页版实现与优化

本文通过对话形式介绍了如何使用Python Flask框架和MySQL数据库构建一个校友系统的网页版,涵盖功能设计、代码实现及性能优化。

小明: 嘿,小李,我最近在做一个校友系统的网页版,但是一直卡在后端数据交互上。

小李: 哦?你用的是什么技术栈呢?

小明: 我打算用Python的Flask框架,后端连接MySQL数据库。

小李: 那不错啊,Flask轻量级且灵活,适合快速开发。首先你需要设计数据库结构。

小明: 好的,我打算创建两个表:User(用户信息)和Alumni(校友信息)。

-- MySQL Script --

CREATE TABLE User (

id INT AUTO_INCREMENT PRIMARY KEY,

username VARCHAR(50) NOT NULL UNIQUE,

password VARCHAR(255) NOT NULL,

email VARCHAR(100)

);

CREATE TABLE Alumni (

id INT AUTO_INCREMENT PRIMARY KEY,

user_id INT NOT NULL,

graduation_year YEAR,

major VARCHAR(100),

FOREIGN KEY (user_id) REFERENCES User(id)

);

小李: 接下来是Flask部分,我们先写路由处理用户登录请求。

-- app.py --

from flask import Flask, request, jsonify

from flask_mysqldb import MySQL

app = Flask(__name__)

app.config['MYSQL_HOST'] = 'localhost'

app.config['MYSQL_USER'] = 'root'

app.config['MYSQL_PASSWORD'] = ''

app.config['MYSQL_DB'] = 'alumni_system'

mysql = MySQL(app)

@app.route('/login', methods=['POST'])

def login():

data = request.get_json()

username = data['username']

password = data['password']

cur = mysql.connection.cursor()

cur.execute("SELECT * FROM User WHERE username=%s AND password=SHA2(%s, 256)", (username, password))

user = cur.fetchone()

cur.close()

if user:

return jsonify({'success': True, 'userId': user[0]})

else:

return jsonify({'success': False})

小李: 这样后端就完成了,前端可以用HTML+JS来展示校友信息。

-- alumni.html --

    小李: 如果数据量很大,可以考虑对SQL查询进行索引优化。

    -- MySQL Indexing --

    ALTER TABLE User ADD INDEX idx_username(username);

    ALTER TABLE Alumni ADD INDEX idx_user_id(user_id);

    小明: 太感谢了!现在我明白了如何搭建整个系统。

    ]]>

相关资讯

    暂无相关的数据...