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.
3 Réponses :
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é.
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
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)
<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>
REMARQUE : myapp est un nom d'alias donné dans la balise VirtualHost
app.config ['SQLALCHEMY_DATABASE_URI'] = 'mysql: // medclub: sandip123 @ localhost: 3306 / dbsite'`
Cela fonctionne pour moi.
c'est mieux comme un commentaire que comme une réponse
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.