1
votes

Comment puis-je exécuter une application Web flask python avec xampp?

Je développe une application Web en python avec flask et je ne sais pas comment tester mon application sur le serveur apache xampp. Lorsque je vais sur le tableau de bord xampp et que j'ouvre le fichier .py, le navigateur ne me montre que le code .py et n'exécute rien. Le fichier .py n'a pas de code html. Je veux savoir comment exécuter le fichier .py pour voir le .html et sa fonctionnalité dans le navigateur. C'est le code du fichier .py:

#C:\Python27\python.exe -u
from flask import Flask, render_template, session, request, escape, 
url_for, redirect
from hashlib import md5
import MySQLdb, sys, pdb
import cgi

app = Flask(__name__)

# if __name__ == '__main__':
db = MySQLdb.connect(host="localhost", user="root",
                     passwd="root", db="prueba")
cur = db.cursor()
app.secret_key = 'mysecretkey'


class ServerError(Exception):
   pass

# METODO DE LA PAGINA HOME DE ADMIN


@app.route('/')
def home():

    #Si esta la sesion iniciada, cargamos la pagina home con la sesion iniciada

    if 'username' in session:
        username_session = escape(session['username']).capitalize()

        return render_template('home.html', 
session_user_name=username_session, adminIs = True)

    #Si no esta la sesion iniciada, cargamos la pagina home sin la sesion iniciada

    return render_template('home.html')

app.secret_key='A0Zr98j/3yX R~XHH!jmN]LWX/,?RT'

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

Ce code ne montre qu'une seule fonction pour afficher la page d'accueil .html mais je veux que le navigateur, lorsque je vais sur l'une des pages, affiche le .html (avec le code php intégré) les données que j'apporte du serveur mysql.


4 commentaires

Vous devrez peut-être activer et configurer mod_wsgi pour exécuter une application flask dans Apache. À des fins de test, vous pouvez utiliser le serveur interne de Flask ( flask run ). Vous pouvez également utiliser gunicorn pour servir votre application localement.


Comment puis je faire ça?


Pourquoi est-il étiqueté avec PHP?


Cause dans les pages html a intégré du code php pour apporter des données de mysql. C'est pourquoi j'ai besoin d'un serveur Apache.


3 Réponses :


0
votes

Vous devez dire au serveur apache de xampp d'exécuter des scripts python. Modifiez donc httpd.conf dans votre dossier xampp / apache et ajoutez ce qui suit à la fin du fichier:

AddHandler cgi-script .py
ScriptInterpreterSource Registry-Strict

Redémarrez xampp et votre fichier .py doit être exécuté.


4 commentaires

Doit être exécuté, mais le fichier .py n'a pas de code html. J'ai essayé d'exécuter un fichier .py avec simplement du code html et cela fonctionne, mais avec le code que j'ai montré, cela ne fonctionne pas.


Avez-vous essayé d'exécuter le code via flask run pour voir s'il fonctionne généralement?


Je l'ai déjà essayé mais j'ai eu une erreur (Erreur: impossible de localiser une application Flask. Vous n'avez pas fourni la variable d'environnement "FLASK_APP" et un module "wsgi.py" ou "app.py" n'a pas été trouvé le répertoire c urrent.)


Sur la ligne de commande, utilisez set FLASK_APP = . FLASK_APP peut également être un package comme myapplication / __ init__.py en créant app dans ce fichier. Vous trouverez tout ce dont vous avez besoin sur flask.palletsprojects.com/en/1.1.x/ démarrage rapide



0
votes

Je sais qu'il a été publié il y a longtemps, j'ai récemment eu une exigence similaire
Je vais montrer comment déployer l'application flask python sur Apache2.4 avec une application flask factice minimale (la même chose peut être testée sur votre serveur xampp)

prérequis

  • télécharger Apache2.4 https://www.apachelounge.com/download/ le décompresser et collez Apache24 dans C: / Apache24
  • ajouter au chemin MOD_WSGI_APACHE_ROOTDIR = "C: \ Apache24"
  • installer le serveur Apache en tant que serveur Windows
    > C: \ Apache24 \ bin \ httpd.exe -k installer
  • téléchargez le mod_wsgi depuis le https: //www.lfd. uci.edu/~gohlke/pythonlibs/
    installer le fichier de roue mod_wsgi
    > python -m pip install
  • à partir de la ligne de commande, exécutez la commande suivante
    > mod_wsgi-express module-config
  • collez la sortie ci-dessus dans le fichier httpd.conf à la dernière ligne
  • collez ce qui suit après l'étape précédente
  • <IfModule wsgi_module>
        <VirtualHost *:5000>
            ServerName 127.0.0.1
            WSGIScriptAlias /myapp C:/Apache24/htdocs/flaskapp/my_app.wsgi
            <Directory C:/Apache24/htdocs/flaskapp>
                Options +Indexes +FollowSymLinks +Includes +ExecCGI
                Allow from all
                AllowOverride None
                Require all granted
            </Directory>
            ErrorLog "D:/var/logs/error.log"
            CustomLog "D:/var/logs/access.log" common
        </VirtualHost>
    </IfModule>  
    

  • mon application réside dans C: \ Apache24 \ htdocs \ flaskapp qui contient my_app.py et my_app.wsgi
  • Redémarrez le service Apache24 à partir de la gestion des services Windows
    windows + R -> services.msc -> rechercher Apache24 -> redémarrer
  • accéder au navigateur
    http: // localhost: 5000 / myapp

    REMARQUE : myapp est un nom d'alias donné dans la balise VirtualHost


  • 0 commentaires

    0
    votes

    app.config ['SQLALCHEMY_DATABASE_URI'] = 'mysql: // medclub: sandip123 @ localhost: 3306 / dbsite'`

    Cela fonctionne pour moi.


    1 commentaires

    c'est mieux comme un commentaire que comme une réponse