我是flask的新手(使用nginx),我正在尝试理解URL逻辑。我有两个python脚本.... /site/myapp.py和/site/bar.py。
我有三个问题:
1.如果我只想运行myapp.py而不想运行/site/bar.py,如何添加url规则以使用add_url_rule运行它?
1.如果我想运行/site/ www.example.com,我该怎么做呢bar.py?
1.如果我想运行myapp.py,并且有两个不同的视图......取决于xml.open("POST", "/site/myapp/view1", true)
和xml.open("POST", "/site/myapp/view2"
,对)......我如何使用add_url_rule为myapp.py中的每个视图分配一个url?
python脚本/站点/myapp.py:
root@chat:/site# cat myapp.py
import flask, flask.views
app = flask.Flask(__name__)
class View1(flask.views.MethodView):
def post(self):
pass
app.add_url_rule('/site/myapp', view_func=View1.as_view('view1'))
root@chat:/site#
Javascript函数:
function foo() {
var xml = new XMLHttpRequest();
xml.open("POST", "/site/myapp", true);
xml.send(form);
console.log("sent")
xml.onreadystatechange = function () {
console.log(xml.readyState);
console.log(xml.status);
if (xml.readyState == "4" && xml.status == "200"){
console.log("yes");
console.log(xml.responseText);
}
}
}
nginx配置:
server {
listen 10.33.113.55;
access_log /var/log/nginx/localhost.access_log main;
error_log /var/log/nginx/localhost.error_log info;
location / {
root /var/www/dude;
}
location /site/ {
try_files $uri @uwsgi;
}
location @uwsgi {
include uwsgi_params;
uwsgi_pass 127.0.0.1:3031;
}
}
1条答案
按热度按时间b1uwtaje1#
在flask tutorial上,您可以找到以下内容:
这意味着,任何在
http://yourdomain.tld/
访问您网站的人都将执行show_entries
函数,并且render_template('show_entries.html', entries=entries)
的返回值将被发送给用户。在this page上,您还可以发现:
相当于
你需要忘记你的PHP背景,换一种方式思考。人们不会使用像
http://yourdomain.com/index.py
这样的URL访问你的网站。基本上,你告诉你的服务器那个flask负责处理URL,然后你把URLMap到函数。就这么简单。