我是新手(使用nginx),我正在尝试理解URL逻辑。我有2个python脚本.... / site / myapp.py和/site/bar.py。
我有三个问题,请:
xml.open("POST",
"/site/myapp/view1", true)
和xml.open("POST",
"/site/myapp/view2"
,是真的)....我将如何为每个分配一个网址
使用add_url_rule在myapp.py中查看?python脚本/site/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 config:
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;
}
}
答案 0 :(得分:2)
在flask tutorial上,您可以找到以下内容:
@app.route('/')
def show_entries():
cur = g.db.execute('select title, text from entries order by id desc')
entries = [dict(title=row[0], text=row[1]) for row in cur.fetchall()]
return render_template('show_entries.html', entries=entries)
这意味着,在http://yourdomain.tld/
访问您网站的任何人都将执行show_entries
功能,并且render_template('show_entries.html', entries=entries)
的返回值将发送给用户。
在this page上,您还可以找到:
@app.route('/')
def index():
pass
相当于
def index():
pass
app.add_url_rule('/', 'index', index)
你需要忘记你的PHP背景,并以另一种方式思考。人们不会使用http://yourdomain.com/index.py
等网址访问您的网站。基本上,您告诉您的服务器瓶子负责处理URL,并将URL映射到函数。就这么简单。