如何使用xampp运行Python Flask Web应用程序?

3

我正在使用flask开发一个python web应用程序,但我不知道如何在xampp apache服务器中测试我的应用程序。当我进入xampp仪表板并打开.py文件时,浏览器只显示.py代码,不执行任何操作。.py文件没有获取html代码。我想知道如何执行.py文件以在浏览器中查看.html及其功能。这是.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)

这段代码仅展示了一个显示主页.html的函数,但我希望浏览器在访问其中一个页面时,能够展示从mysql服务器获取的数据,并带有嵌入式php代码。"最初的回答"

你可能需要启用并配置mod_wsgi来在Apache中执行Flask应用程序。为了测试目的,你可以使用Flask的内部服务器(flask run)。你也可以使用gunicorn在本地提供你的应用程序服务。 - undefined
怎样才能做到这一点? - undefined
为什么它被标记为PHP? - undefined
因为在HTML页面中嵌入了PHP代码来从MySQL获取数据。这就是为什么我需要一个Apache服务器。 - undefined
3个回答

0

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

这对我来说有效。

1
这更适合作为评论而不是答案。 - undefined

0
你需要告诉XAMPP中的Apache服务器来执行Python脚本。因此,请编辑XAMPP/Apache文件夹中的httpd.conf文件,并在文件末尾添加以下内容:
AddHandler cgi-script .py
ScriptInterpreterSource Registry-Strict

重新启动xampp,你的.py文件将被执行。

应该可以执行,但是.py文件没有html代码。我尝试过用只有html代码的.py文件执行是有效的,但是使用我展示的代码却无法执行。 - undefined
你试过用flask run运行代码,看看它是否基本正常工作了吗? - undefined
我已经尝试过了,但是出现了错误(错误:无法找到Flask应用程序。您没有提供“FLASK_APP”环境变量,且当前目录中未找到“wsgi.py”或“app.py”模块。) - undefined
在命令行中使用set FLASK_APP=<name_of_your_app.py>。FLASK_APP也可以是一个包,例如myapplication/__init__.py,在该文件中创建app。您可以在https://flask.palletsprojects.com/en/1.1.x/quickstart/找到所需的一切。 - undefined

0

我知道这是很久以前发布的内容,最近我有类似的需求。
我将演示如何在Apache2.4上部署Python Flask应用程序,并使用最简单的虚拟Flask应用程序进行测试(同样可以在您的XAMPP服务器上进行测试)。

先决条件

  • 下载Apache2.4 https://www.apachelounge.com/download/,解压并将Apache24粘贴到C:/Apache24目录下
  • MOD_WSGI_APACHE_ROOTDIR="C:\Apache24"添加到环境变量中
  • 将Apache服务器安装为Windows服务
        > C:\Apache24\bin\httpd.exe -k install
  • https://www.lfd.uci.edu/~gohlke/pythonlibs/下载mod_wsgi
        安装mod_wsgi的wheel文件
        > python -m pip install <*.whl文件>
  • 在命令行中运行以下命令
        > mod_wsgi-express module-config
  • 将上述输出粘贴到httpd.conf文件的最后一行
  • 在上一步之后粘贴以下内容
  • <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>  
    

  • 我的应用程序位于C:\Apache24\htdocs\flaskapp,其中包含my_app.pymy_app.wsgi
  • 从Windows服务管理中重新启动Apache24服务
        windows + R --> services.msc --> 搜索Apache24 --> 重新启动
  • 打开浏览器
        http://localhost:5000/myapp
  • 注意:myapp是在VirtualHost标签中给定的别名


    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接