Maison > base de données > tutoriel mysql > le corps du texte

Comment développer un système simple de suggestion de réclamation en ligne à l'aide de MySQL et Python

WBOY
Libérer: 2023-09-21 08:01:57
original
1373 Les gens l'ont consulté

Comment développer un système simple de suggestion de réclamation en ligne à laide de MySQL et Python

Comment utiliser MySQL et Python pour développer un système simple de réclamation et de suggestion en ligne

Introduction :
Avec le développement d'Internet, de plus en plus de personnes ont commencé à choisir de soumettre des réclamations et des suggestions en ligne, ce qui permet aux entreprises et les institutions ayant une meilleure compréhension des besoins des utilisateurs et améliorant les opportunités de service. Cet article expliquera comment utiliser MySQL et Python pour développer un système simple de suggestion de réclamation en ligne et fournira des exemples de code correspondants.

1. Analyse de la configuration système requise
Avant de commencer le développement, nous devons clarifier la configuration système requise. Un simple système de réclamation et de suggestion en ligne doit avoir les fonctions suivantes :

  • Inscription et connexion des utilisateurs
  • Soumission et gestion des réclamations et des suggestions
  • Requête et réponse aux réclamations et suggestions
  • Fonctions de gestion du système

2.
Dans MySQL Créez une base de données nommée "complaint_system" et créez les tables suivantes :

  • table des utilisateurs : utilisée pour stocker les informations sur l'utilisateur, y compris l'ID utilisateur, le nom d'utilisateur, le mot de passe et d'autres champs.

    CREATE TABLE users (
      id INT PRIMARY KEY AUTO_INCREMENT,
      username VARCHAR(50) NOT NULL,
      password VARCHAR(50) NOT NULL
    );
    Copier après la connexion
  • tableau des plaintes : utilisé pour stocker les informations de suggestion de plainte, y compris l'identifiant de la plainte, le contenu de la plainte, l'heure de soumission, l'état du traitement et d'autres champs.

    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)
    );
    Copier après la connexion
  • tableau des réponses : utilisé pour stocker les informations de réponse, y compris l'ID de réponse, le contenu de la réponse, l'heure de réponse et d'autres champs.

    CREATE TABLE replies (
      id INT PRIMARY KEY AUTO_INCREMENT,
      complaint_id INT,
      content TEXT NOT NULL,
      reply_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
    );
    Copier après la connexion

3. Développement backend
Nous utilisons le framework Flask de Python pour développer l'interface backend. Tout d'abord, installez les bibliothèques de connexion Flask et MySQL :

pip install flask
pip install flask-mysql
Copier après la connexion

Ensuite, écrivez un fichier Python nommé "app.py" comme fichier d'entrée pour le backend. Introduisez la bibliothèque correspondante dans le fichier et configurez la connexion à la base de données :

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)
Copier après la connexion

Ensuite, définissez le routage et les fonctions de traitement correspondantes pour mettre en œuvre diverses fonctions du système :

  • Inscription et connexion de l'utilisateur :

    @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'})
    Copier après la connexion
  • Soumission des réclamations et suggestions Et gestion :

    @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'})
    Copier après la connexion
  • Enquête et réponse aux plaintes et suggestions :

    @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'})
    Copier après la connexion
  • Fonction de gestion du système :
    (omis, développer les fonctions de routage et de traitement correspondantes en fonction des besoins réels)

Enfin, exécutez l'application Flask :

if __name__ == '__main__':
    app.run()
Copier après la connexion

4. Développement front-end
Le développement d'une interface front-end peut être réalisé à l'aide de technologies front-end telles que HTML, CSS et JavaScript. Par souci de simplicité, nous utilisons Bootstrap comme framework frontal et jQuery pour les requêtes AJAX et l'affichage dynamique. Voici un exemple frontal simple :

<!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>
Copier après la connexion

Vous pouvez maintenant ouvrir le fichier HTML dans votre navigateur pour tester la fonctionnalité du système.

Conclusion :
Cet article explique comment utiliser MySQL et Python pour développer un système simple de suggestion de réclamation en ligne. Grâce à la conception de la base de données et au développement de l'interface back-end, des fonctions telles que l'enregistrement et la connexion des utilisateurs, la soumission et la gestion des plaintes et des suggestions, l'interrogation et la réponse aux plaintes et aux suggestions, ainsi que la gestion du système sont réalisées. Le front-end utilise Bootstrap et jQuery pour le développement d'interfaces et le traitement des événements. Grâce à ce système, les entreprises et les institutions peuvent mieux recueillir les commentaires des utilisateurs et améliorer la qualité du service.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal