ホームページ > データベース > mysql チュートリアル > MySQL と Python を使用して簡単なオンライン苦情提案システムを開発する方法

MySQL と Python を使用して簡単なオンライン苦情提案システムを開発する方法

WBOY
リリース: 2023-09-21 08:01:57
オリジナル
1397 人が閲覧しました

MySQL と Python を使用して簡単なオンライン苦情提案システムを開発する方法

MySQL と Python を使用して簡単なオンライン苦情提案システムを開発する方法

はじめに:
インターネットの発展に伴い、ますます多くの人々が苦情提案システムを開発しています。オンラインで苦情や提案を送信することで、企業や機関はユーザーのニーズをより深く理解し、サービスを改善する機会が得られます。この記事では、MySQL と Python を使用して簡単なオンライン苦情提案システムを開発する方法を紹介し、対応するコード例を示します。

1. システム要件の分析
開発を開始する前に、システム要件を明確にする必要があります。単純なオンライン苦情および提案システムには、次の機能が必要です。

  • ユーザー登録とログイン
  • 苦情と提案の提出と管理
  • 苦情への問い合わせと返信
  • ##システム管理機能
  • ##2. データベース設計
MySQL に「complaint_system」という名前のデータベースを作成し、次のテーブルを作成します。

#Users テーブル: ユーザー ID、ユーザー名、パスワード、その他のフィールドを含むユーザー情報を保存するために使用されます。

CREATE TABLE users (
  id INT PRIMARY KEY AUTO_INCREMENT,
  username VARCHAR(50) NOT NULL,
  password VARCHAR(50) NOT NULL
);
ログイン後にコピー

  • 苦情テーブル: 苦情 ID、苦情内容、提出時間、処理ステータス、その他のフィールドを含む苦情提案情報を保存するために使用されます。

    CREATE TABLE complaints (
      id INT PRIMARY KEY AUTO_INCREMENT,
      user_id INT,
      content TEXT NOT NULL,
      submit_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
      status VARCHAR(50)
    );
    ログイン後にコピー

  • replies テーブル: 返信 ID、返信内容、返信時間、その他のフィールドを含む返信情報を保存するために使用されます。

    CREATE TABLE replies (
      id INT PRIMARY KEY AUTO_INCREMENT,
      complaint_id INT,
      content TEXT NOT NULL,
      reply_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
    );
    ログイン後にコピー

  • 3. バックエンド開発

    バックエンド インターフェイスの開発には Python の Flask フレームワークを使用します。まず、Flask と MySQL 接続ライブラリをインストールします。

    pip install flask
    pip install flask-mysql
    ログイン後にコピー
  • 次に、バックエンドのエントリ ファイルとして「app.py」という名前の Python ファイルを作成します。対応するライブラリをファイルに導入し、データベース接続を構成します:
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'] = 'password'
app.config['MYSQL_DB'] = 'complaint_system'

mysql = MySQL(app)
ログイン後にコピー

次に、システムのさまざまな機能を実装するためのルーティングと対応する処理関数を定義します:

ユーザー登録ログイン:

@app.route('/register', methods=['POST'])
def register():
  username = request.form['username']
  password = request.form['password']

  cur = mysql.connection.cursor()
  cur.execute("INSERT INTO users (username, password) VALUES (%s, %s)", (username, password))
  mysql.connection.commit()
  cur.close()

  return jsonify({'message': 'Registration success'})

@app.route('/login', methods=['POST'])
def login():
  username = request.form['username']
  password = request.form['password']

  cur = mysql.connection.cursor()
  cur.execute("SELECT * FROM users WHERE username = %s AND password = %s", (username, password))
  user = cur.fetchone()
  cur.close()

  if user:
      return jsonify({'message': 'Login success'})
  else:
      return jsonify({'message': 'Invalid username or password'})
ログイン後にコピー

  • 苦情や提案の提出と管理:

    @app.route('/complaints', methods=['POST'])
    def submit_complaint():
      user_id = request.form['user_id']
      content = request.form['content']
    
      cur = mysql.connection.cursor()
      cur.execute("INSERT INTO complaints (user_id, content, status) VALUES (%s, %s, %s)", (user_id, content, 'Pending'))
      mysql.connection.commit()
      cur.close()
    
      return jsonify({'message': 'Complaint submitted'})
    
    @app.route('/complaints/<complaint_id>', methods=['PUT'])
    def update_complaint(complaint_id):
      status = request.form['status']
    
      cur = mysql.connection.cursor()
      cur.execute("UPDATE complaints SET status = %s WHERE id = %s", (status, complaint_id))
      mysql.connection.commit()
      cur.close()
    
      return jsonify({'message': 'Complaint updated'})
    ログイン後にコピー

  • 苦情や提案に対する問い合わせと対応:

    @app.route('/complaints', methods=['GET'])
    def get_complaints():
      cur = mysql.connection.cursor()
      cur.execute("SELECT * FROM complaints")
      complaints = cur.fetchall()
      cur.close()
    
      return jsonify({'complaints': complaints})
    
    @app.route('/complaints/<complaint_id>/reply', methods=['POST'])
    def reply_complaint(complaint_id):
      content = request.form['content']
    
      cur = mysql.connection.cursor()
      cur.execute("INSERT INTO replies (complaint_id, content) VALUES (%s, %s)", (complaint_id, content))
      mysql.connection.commit()
      cur.close()
    
      return jsonify({'message': 'Reply submitted'})
    ログイン後にコピー

  • システム管理機能:
  • (省略、実際のニーズに応じて対応するルーティングおよび処理機能を開発)

  • 最後に、Flask アプリケーションを実行します:
  • if __name__ == '__main__':
        app.run()
    ログイン後にコピー

    4 . フロントエンド開発
  • フロントエンド インターフェースの開発は、HTML、CSS、JavaScript などのフロントエンド技術を使用して実行できます。ここでは簡単にするために、フロントエンド フレームワークとして Bootstrap を使用し、AJAX リクエストと動的表示には jQuery を使用します。簡単なフロントエンドの例を次に示します。
<!DOCTYPE html>
<html>
<head>
    <title>Complaint System</title>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
</head>
<body>
    <div class="container">
        <h1>Complaint System</h1>
        <form id="register_form">
            <h2>Register</h2>
            <div class="form-group">
                <input type="text" class="form-control" name="username" placeholder="Username">
            </div>
            <div class="form-group">
                <input type="password" class="form-control" name="password" placeholder="Password">
            </div>
            <button type="submit" class="btn btn-primary">Register</button>
        </form>

        <form id="login_form">
            <h2>Login</h2>
            <div class="form-group">
                <input type="text" class="form-control" name="username" placeholder="Username">
            </div>
            <div class="form-group">
                <input type="password" class="form-control" name="password" placeholder="Password">
            </div>
            <button type="submit" class="btn btn-primary">Login</button>
        </form>

        <!-- 其他功能界面 -->

    </div>

    <script>
        // 注册事件
        $("#register_form").submit(function(event) {
            event.preventDefault();

            var url = "/register";
            var data = $(this).serialize();

            $.post(url, data, function(response) {
                alert(response.message);
            });
        });

        // 登录事件
        $("#login_form").submit(function(event) {
            event.preventDefault();

            var url = "/login";
            var data = $(this).serialize();

            $.post(url, data, function(response) {
                alert(response.message);
            });
        });

        // 其他事件....

    </script>
</body>
</html>
ログイン後にコピー

これで、ブラウザで HTML ファイルを開いて、システムの機能をテストできます。

結論:
この記事では、MySQL と Python を使用して簡単なオンライン苦情提案システムを開発する方法を紹介します。データベースの設計とバックエンドインターフェースの開発により、ユーザーの登録とログイン、苦情や提案の提出と管理、苦情や提案に対する問い合わせと回答、システム管理などの機能が実現されます。フロントエンドは、インターフェイス開発とイベント処理にブートストラップと jQuery を使用します。このシステムを通じて、企業や機関はユーザーのフィードバックをより適切に収集し、サービスの品質を向上させることができます。

以上がMySQL と Python を使用して簡単なオンライン苦情提案システムを開発する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート