Maison > Article > base de données > Comment développer un site Web de questions-réponses simple en utilisant MySQL et Python
Comment développer un site Web de questions-réponses simple à l'aide de MySQL et Python
Introduction :
Le site Web de questions-réponses est l'une des plateformes sociales en ligne les plus populaires sur Internet. Il permet aux utilisateurs de poser des questions et d'obtenir des réponses des autres. plate-forme des utilisateurs. Cet article détaillera comment développer un site Web de questions-réponses simple à l'aide de la base de données MySQL et du langage de programmation Python, et fournira des exemples de code spécifiques.
1. Configuration de l'environnement
Avant de commencer, vous devez vous assurer que la base de données MySQL et l'environnement de programmation Python ont été installés. Vous pouvez apprendre à installer et configurer l'environnement approprié via les liens suivants :
2. Créer une base de données
Créez une base de données dans MySQL pour stocker les données requises pour le site Web de questions-réponses. Vous pouvez utiliser les outils graphiques de MySQL (tels que phpMyAdmin) ou la ligne de commande pour créer une base de données.
Exemple de code :
CREATE DATABASE qanda;
3. Créer des tableaux de données
Afin de stocker des informations telles que les utilisateurs, les questions et les réponses, les tableaux de données correspondants doivent être créés dans la base de données. Créez trois tables de données dans la base de données qanda : utilisateurs, questions et réponses.
Exemple de code :
CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(50) NOT NULL, password VARCHAR(50) NOT NULL );
Exemple de code :
CREATE TABLE questions ( id INT AUTO_INCREMENT PRIMARY KEY, title VARCHAR(100) NOT NULL, content TEXT NOT NULL, user_id INT, FOREIGN KEY (user_id) REFERENCES users(id) );
Exemple de code :
CREATE TABLE answers ( id INT AUTO_INCREMENT PRIMARY KEY, content TEXT NOT NULL, question_id INT, user_id INT, FOREIGN KEY (question_id) REFERENCES questions(id), FOREIGN KEY (user_id) REFERENCES users(id) );
4. Écrivez du code Python
Utilisez le langage de programmation Python pour vous connecter à la base de données MySQL et écrivez du code pour traiter la logique du site Web de questions-réponses.
Exemple de code :
import mysql.connector db = mysql.connector.connect( host="localhost", user="root", password="password", database="qanda" )
Exemple de code :
def register_user(username, password): cursor = db.cursor() sql = "INSERT INTO users (username, password) VALUES (%s, %s)" val = (username, password) cursor.execute(sql, val) db.commit() return cursor.lastrowid
Exemple de code :
def ask_question(title, content, user_id): cursor = db.cursor() sql = "INSERT INTO questions (title, content, user_id) VALUES (%s, %s, %s)" val = (title, content, user_id) cursor.execute(sql, val) db.commit() return cursor.lastrowid
Exemple de code :
def answer_question(content, question_id, user_id): cursor = db.cursor() sql = "INSERT INTO answers (content, question_id, user_id) VALUES (%s, %s, %s)" val = (content, question_id, user_id) cursor.execute(sql, val) db.commit() return cursor.lastrowid
Exemple de code :
def get_question_list(): cursor = db.cursor() sql = "SELECT * FROM questions" cursor.execute(sql) return cursor.fetchall()
Exemple de code :
def get_answer_list(question_id): cursor = db.cursor() sql = "SELECT * FROM answers WHERE question_id = %s" val = (question_id,) cursor.execute(sql, val) return cursor.fetchall()
import mysql.connector db = mysql.connector.connect( host="localhost", user="root", password="password", database="qanda" ) def register_user(username, password): cursor = db.cursor() sql = "INSERT INTO users (username, password) VALUES (%s, %s)" val = (username, password) cursor.execute(sql, val) db.commit() return cursor.lastrowid def ask_question(title, content, user_id): cursor = db.cursor() sql = "INSERT INTO questions (title, content, user_id) VALUES (%s, %s, %s)" val = (title, content, user_id) cursor.execute(sql, val) db.commit() return cursor.lastrowid def answer_question(content, question_id, user_id): cursor = db.cursor() sql = "INSERT INTO answers (content, question_id, user_id) VALUES (%s, %s, %s)" val = (content, question_id, user_id) cursor.execute(sql, val) db.commit() return cursor.lastrowid def get_question_list(): cursor = db.cursor() sql = "SELECT * FROM questions" cursor.execute(sql) return cursor.fetchall() def get_answer_list(question_id): cursor = db.cursor() sql = "SELECT * FROM answers WHERE question_id = %s" val = (question_id,) cursor.execute(sql, val) return cursor.fetchall()
5. Exécutez le programme de site Web
Utilisez Flask Attendez que le framework Web écrive un programme de site Web simple, démarrez le serveur Web et rendez le site Web de questions-réponses accessible dans le navigateur.
Exemple de code (en utilisant Flask) :
from flask import Flask, request, render_template app = Flask(__name__) # 注册用户 @app.route('/register', methods=['POST']) def handle_register(): username = request.form.get('username') password = request.form.get('password') user_id = register_user(username, password) return f"User registered with ID: {user_id}" # 提问问题 @app.route('/ask', methods=['POST']) def handle_ask(): title = request.form.get('title') content = request.form.get('content') user_id = int(request.form.get('user_id')) question_id = ask_question(title, content, user_id) return f"Question asked with ID: {question_id}" # 回答问题 @app.route('/answer', methods=['POST']) def handle_answer(): content = request.form.get('content') question_id = int(request.form.get('question_id')) user_id = int(request.form.get('user_id')) answer_id = answer_question(content, question_id, user_id) return f"Answered with ID: {answer_id}" # 获取问题列表 @app.route('/questions') def handle_questions(): questions = get_question_list() return render_template('questions.html', questions=questions) # 获取问题回答列表 @app.route('/answers/<question_id>') def handle_answers(question_id): answers = get_answer_list(int(question_id)) return render_template('answers.html', answers=answers) if __name__ == '__main__': app.run()
6. Résumé
À ce stade, le développement d'un simple site Web de questions-réponses est terminé. Dans cet article, nous expliquons comment développer un site Web de questions-réponses à l'aide de MySQL et Python, et fournissons des exemples de code spécifiques. J'espère que les lecteurs pourront acquérir des connaissances sur le développement MySQL et Python grâce à cet article et pourront l'utiliser comme base pour le développement d'applications plus complexes. Je vous souhaite à tous bonne chance dans votre développement !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!