这是我的第一天"在此,请耐心等待。
我试图让render_template工作,所以我可以使用Python使用Flask程序来处理html。我已经完成了教程,但是他们只告诉我如何通过终端执行代码,然后才通过显式调用Python。我已经制作了三个文件(routes.py,layout和home),我需要让它们工作并将它们放在(应用程序文件夹,应用程序中的模板文件夹,应用程序中的模板文件夹)中。然后我将app文件夹放在我服务器上的public_html文件中。
当我转到" mywebpage" /app/template/home.html地址时,我得到的html文件最初是在没有替换{{}}变量的情况下编写的。完全难倒。我不知道是否必须在html文件中显式调用routes.py文件,是否必须告诉.htaccess中的DirectoryIndex来查找它,或者服务器是否应该在app文件夹中找到它本身。但基本上我知道routes.py调用其他文件,但我不知道如何调用routes.py。
这是我的代码:
routes.py
from flask import Flask, render_template
app = Flask(__name__)
@app.route('mywebsite')
def home():
user = {'nickname': 'Miguel'} # fake user
return render_template('home.html', user = user)
'''if __name__ == '__main__':'''
app.run(debug=True)
home.html的
{% extends "layout.html" %}
{% block content %}
<div class="jumbo">
<h2>Welcome to the Flask app<h2>
<h3>This is the home page for the Flask app<h3>
</div>
<body>
<p> Hello, {{user.nickname}} </p>
</body>
{% endblock %}
的layout.html
<!DOCTYPE html>
<html>
<head>
<title>Flask App</title>
</head>
<body>
<header>
<div class="container">
<h1 class="logo">Flask App</h1>
</div>
</header>
<div class="container">
{% block content %}
{% endblock %}
</div>
</body>
</html>
最后,要好。我已经做了我能想到的一切来达到这一点。
编辑:本网站:
http://melvin0008.github.io/blog/build-a-redditapi-using-python/
说@ app.route(&#39; / pants&#39;)应该让mywebsite.com/pants显示渲染的模板。我在根目录public_html文件夹和app文件夹中尝试使用我的route.py文件。都没有奏效。我的服务器没有看到website.com/pants。
答案 0 :(得分:0)
当运行Flask服务器时(在调试中,在这种情况下),您应该使用终端中写入的URL,可能是localhost:8080
并将其添加到您想要唤起的路由。
就此而言,为了查看您构建的网页,当localhost:8080/mywebsite
是您的服务器网址时,您应该在浏览器localhost:8080
中输入。
我建议您将路线名称更改为/
,如下所示:
代替:
@app.route('mywebsite')
写这个:
@app.route('/')
您将获得localhost:8080/
答案 1 :(得分:0)
例如,当我转到localhost时,此设置将返回hello.html文件:1200 / hello
@app.route("/hello")
def hello():
return render_template("hello.html")
if __name__ == '__main__':
app.run(host="0.0.0.0", port=1200, debug=True)
只要运行它以便其他人可以看到它,您将需要一个服务器将专用IP地址和Apache服务器,以便您可以启动该应用程序,或者如果您希望您可以免费使用heroku。
答案 2 :(得分:0)
在查看了对其他答案的回复之后,我认为您对Flask项目的部署方式存在根本性的误解。
与其他语言(如PHP或标准HTML)不同,您不能只在浏览器中调用python文件或路径,而是需要在远程服务器上启动服务器应用程序。
如果您正在使用共享虚拟主机,则可能无法实现。
通常,当我开发瓶子应用程序时,我会在Amazon Web Services上启动EC2实例并手动部署它,或使用他们提供的Elastic Beanstalk服务。
您还可以找到允许您部署烧瓶应用的共享虚拟主机。