MySQL と Python を使用して簡単な Q&A Web サイトを開発する方法
はじめに:
Q&A Web サイトは、インターネット上で最も人気のあるオンライン ソーシャル プラットフォームの 1 つです。ユーザーが質問し、他のユーザーから回答を得られるプラットフォームを提供します。この記事では、MySQL データベースと Python プログラミング言語を使用して簡単な Q&A Web サイトを開発する方法を詳しく説明し、具体的なコード例を示します。
1. 環境セットアップ
開始する前に、MySQL データベースと Python プログラミング環境がインストールされていることを確認する必要があります。次のリンクから、関連する環境をインストールして構成する方法を学習できます:
2. データベースの作成
MySQL でデータベースを作成し、Q&A Web サイトに必要なデータを保存します。 MySQL のグラフィカル ツール (phpMyAdmin など) またはコマンド ラインを使用してデータベースを作成できます。
サンプルコード:
CREATE DATABASE qanda;
3. データテーブルの作成
ユーザー、質問、回答などの情報を保存するには、対応するデータテーブルをデータベースに作成する必要があります。 qanda データベースにユーザー、質問、回答という 3 つのデータ テーブルを作成します。
サンプル コード:
CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(50) NOT NULL, password VARCHAR(50) NOT NULL );
サンプル コード:
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) );
サンプル コード:
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. Python コードを作成する
Python プログラミング言語を使用して MySQL データベースに接続し、Q&A Web サイトのロジックを処理するコードを作成します。 。
サンプル コード:
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()
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. Web サイト プログラムを実行します。
Flask などの Web フレームワークを使用します。簡単な Web サイト プログラムを作成して Web サーバーを起動し、ブラウザで Q&A サイトにアクセスできるようにします。
サンプルコード (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. まとめ
これで、簡単な質問と回答の Web サイトの開発が完了しました。この記事では、MySQL と Python を使用して Q&A サイトを開発する方法と、具体的なコード例を紹介します。読者がこの記事を通じて MySQL と Python の開発に関する知識を学び、より複雑なアプリケーション開発の基礎として使用できることを願っています。皆さんの発展を祈っています!
以上がMySQL と Python を使用して簡単な Q&A Web サイトを開発する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。