必须重新启动 apache 服务器才能在 Flask 中显示来自 SQL Server 的数据
Posted
技术标签:
【中文标题】必须重新启动 apache 服务器才能在 Flask 中显示来自 SQL Server 的数据【英文标题】:Have to restart apache server to display data from SQL Server in Flask 【发布时间】:2016-12-18 14:31:50 【问题描述】:我已经在 VPS 上设置了一个 Flask 应用程序,一切似乎都运行良好; 当我重新启动 apache 一切正常,我得到了这个: html table
如果我重新加载浏览器页面数据消失并且只保留表格标题;如果我想再次查看数据我必须重新启动 apache 服务器,而 这是我想不通的大问题。
我的数据限制如下:
|----FlaskApp
|---------FlaskApp
| +----main.html
|--------------static
|--------------templates
| +----elenco.py
| +----__init__.py
我尝试做的是使用 _mssql 连接到 SQL Server 数据库,查询数据库并将结果显示在 html 表中。 这是文件的内容:
初始化.py
from flask import Flask, render_template
import _mssql
from elenco import Elenco_chiamate
Chiamate = Elenco_chiamate()
app = Flask(__name__)
@app.route('/')
def homepage():
return render_template("main.html", chiamate_html = Chiamate)
if __name__ == "__main__":
app.run()
elenco.py
import _mssql
def Elenco_chiamate():
conn = _mssql.connect(server='xxxxxxx', user='xxxxx', password='xxxxx')
conn.execute_row('SELECT TOP 100 * FROM ASSET_VIEW')
return conn
conn.close()
main.html
<!DOCTYPE html>
<html lang="it">
<head>
<meta charset="utf-8">
<title>Python Programming Tutorials</title>
<script
src="https://code.jquery.com/jquery-3.1.1.min.js"
integrity="sha256-hVVnYaiADRTO2PzUGmuLJr8BLUSjGIZsDYGmIJLv2b8="
crossorigin="anonymous"></script>
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<!-- Optional theme -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp" crossorigin="anonymous">
<!-- Latest compiled and minified javascript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
</head>
<body>
<table class="table table-striped table-bordered table-hover table-condensed">
<tr>
<th>
INVENTARIO
</th>
<th>
SERIALE
</th>
<th>
APPARECCHIATURA
</th>
</tr>
% for row in chiamate_html %
<tr>
<td>row['NUM']</td>
<td>row['N_SERI']</td>
<td>row['NOM']</td>
</tr>
% endfor %
</table>
</body>
</html>
【问题讨论】:
【参考方案1】:您在模块级别调用Elenco_chiamate()
,因此它只会被调用一次 - 当模块首次导入时。
改为在视图函数中调用它。
【讨论】:
谢谢丹尼尔的评论;只是为了确定,我应该将代码移动到哪里? 转入homepage()
。以上是关于必须重新启动 apache 服务器才能在 Flask 中显示来自 SQL Server 的数据的主要内容,如果未能解决你的问题,请参考以下文章
Django + apache & mod_wsgi:更改后必须重新启动 apache
Crontab - 每 3 小时重新启动 apache [关闭]