Heim  >  Artikel  >  Datenbank  >  So entwickeln Sie ein einfaches Online-Beschwerdevorschlagssystem mit MySQL und Python

So entwickeln Sie ein einfaches Online-Beschwerdevorschlagssystem mit MySQL und Python

WBOY
WBOYOriginal
2023-09-21 08:01:571331Durchsuche

So entwickeln Sie ein einfaches Online-Beschwerdevorschlagssystem mit MySQL und Python

Wie man mit MySQL und Python ein einfaches Online-Beschwerde- und Vorschlagssystem entwickelt

Einführung:
Mit der Entwicklung des Internets entscheiden sich immer mehr Menschen dafür, Beschwerden und Vorschläge online einzureichen, was Unternehmen und Unternehmen mehr Möglichkeiten bietet Institutionen können die Bedürfnisse der Benutzer besser verstehen und ihre Servicemöglichkeiten verbessern. In diesem Artikel wird erläutert, wie Sie mithilfe von MySQL und Python ein einfaches Online-Beschwerdevorschlagssystem entwickeln und entsprechende Codebeispiele bereitstellen.

1. Systemanforderungsanalyse
Bevor wir mit der Entwicklung beginnen, müssen wir die Systemanforderungen klären. Ein einfaches Online-Beschwerde- und Vorschlagssystem sollte folgende Funktionen haben:

  • Benutzerregistrierung und -anmeldung
  • Einreichen und Verwalten von Beschwerden und Vorschlägen
  • Abfrage und Beantwortung von Beschwerden und Vorschlägen
  • Systemverwaltungsfunktionen

2
In MySQL erstellen Sie eine Datenbank mit dem Namen „complaint_system“ und erstellen Sie die folgenden Tabellen:

  • users-Tabelle: Wird zum Speichern von Benutzerinformationen verwendet, einschließlich Benutzer-ID, Benutzername, Passwort und anderen Feldern.

    CREATE TABLE users (
      id INT PRIMARY KEY AUTO_INCREMENT,
      username VARCHAR(50) NOT NULL,
      password VARCHAR(50) NOT NULL
    );
  • Beschwerdetabelle: Wird zum Speichern von Informationen zu Beschwerdevorschlägen verwendet, einschließlich Beschwerde-ID, Beschwerdeinhalt, Einreichungszeit, Bearbeitungsstatus und anderen Feldern.

    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)
    );
  • Antworttabelle: Wird zum Speichern von Antwortinformationen verwendet, einschließlich Antwort-ID, Antwortinhalt, Antwortzeit und anderen Feldern.

    CREATE TABLE replies (
      id INT PRIMARY KEY AUTO_INCREMENT,
      complaint_id INT,
      content TEXT NOT NULL,
      reply_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
    );

3. Backend-Entwicklung
Wir verwenden das Flask-Framework von Python, um die Backend-Schnittstelle zu entwickeln. Installieren Sie zunächst die Flask- und MySQL-Verbindungsbibliotheken:

pip install flask
pip install flask-mysql

Schreiben Sie dann eine Python-Datei mit dem Namen „app.py“ als Eintragsdatei für das Backend. Fügen Sie die entsprechende Bibliothek in die Datei ein und konfigurieren Sie die Datenbankverbindung:

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)

Als nächstes definieren Sie Routing und entsprechende Verarbeitungsfunktionen, um verschiedene Funktionen des Systems zu implementieren:

  • Benutzerregistrierung und -anmeldung:

    @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'})
  • Einreichen von Beschwerden und Vorschläge und Verwaltung:

    @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'})
  • Beschwerde- und Vorschlagsanfrage und Antwort:

    @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'})
  • Systemverwaltungsfunktion:
    (weggelassen, entsprechende Routing- und Verarbeitungsfunktionen entsprechend den tatsächlichen Anforderungen entwickeln)

Führen Sie abschließend die Flask-Anwendung aus:

if __name__ == '__main__':
    app.run()

4. Front-End-Entwicklung
Die Entwicklung der Front-End-Schnittstelle kann mithilfe von Front-End-Technologien wie HTML, CSS und JavaScript durchgeführt werden. Der Einfachheit halber verwenden wir hier Bootstrap als Frontend-Framework und jQuery für AJAX-Anfragen und dynamische Anzeige. Hier ist ein einfaches Frontend-Beispiel:

<!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>

Jetzt können Sie die HTML-Datei in Ihrem Browser öffnen, um die Funktionalität des Systems zu testen.

Fazit:
Dieser Artikel stellt vor, wie man mit MySQL und Python ein einfaches Online-Beschwerdevorschlagssystem entwickelt. Durch das Design der Datenbank und die Entwicklung der Back-End-Schnittstelle werden Funktionen wie Benutzerregistrierung und -anmeldung, Einreichung und Verwaltung von Beschwerden und Vorschlägen, Abfrage und Beantwortung von Beschwerden und Vorschlägen sowie Systemverwaltung realisiert. Das Frontend verwendet Bootstrap und jQuery für die Schnittstellenentwicklung und Ereignisverarbeitung. Durch dieses System können Unternehmen und Institutionen besser Benutzerfeedback sammeln und die Servicequalität verbessern.

Das obige ist der detaillierte Inhalt vonSo entwickeln Sie ein einfaches Online-Beschwerdevorschlagssystem mit MySQL und Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn