标签: url-for

我在哪里定义要在Flask中使用url_for()的域?

当我打电话url_for('index')它会产生,'/'但有时候我会喜欢它生成'domain.tld/'.我在文档中找不到我要指定的内容.我只需要做'domain.tld/%s' % url_for('index')什么?

python url-for flask

57
推荐指数
1
解决办法
3万
查看次数

Flask url_for Javascript中的URL

使用flask时,在Javascript文件中创建动态URL的推荐方法是什么?在jinja2模板和python视图url_for中使用,在.js文件中执行此操作的建议方法是什么?因为它们不是由模板引擎解释的.

基本上想做的是:

// in comments.js
$.post(url_for('comment.comment_reply'));
Run Code Online (Sandbox Code Playgroud)

这是不可能的.

但很自然地,我可以在模板中执行它:

<script>
    $.post(url_for('comment.comment_reply'));
</script>
Run Code Online (Sandbox Code Playgroud)

javascript python url-for flask

35
推荐指数
3
解决办法
3万
查看次数

在jinja2模板中创建指向Flask应用程序URL的链接

在我的Flask应用程序中,我有一个显示帖子的视图

@post_blueprint.route('/post/<int:year>/<int:month>/<title>')
def get_post(year,month,title):
    # My code
Run Code Online (Sandbox Code Playgroud)

要显示最后10个条目,我有以下视图:

@post_blueprint.route('/posts/')
def get_all_posts():
    # My code
    return render_template('p.html',posts=posts)
Run Code Online (Sandbox Code Playgroud)

现在,当我显示最后10个帖子时,我想将帖子的标题转换为超链接.目前我必须在我的jinja模板中执行以下操作来实现此目的:

<a href="/post/{{year}}/{{month}}/{{title}}">{{title}}</a>
Run Code Online (Sandbox Code Playgroud)

有没有办法避免硬编码网址?

就像url_for用于创建Flask网址的函数一样:

url_for('view_name',**arguments)
Run Code Online (Sandbox Code Playgroud)

我试过寻找一个,但我,我找不到它.

python jinja2 url-for flask

35
推荐指数
1
解决办法
7万
查看次数

rails获取app root/base url

在我的应用程序中,我有一些API在api域下.现在在其中一个API中我想生成一个指向主域的URL,比方说

test.com/blabla...
Run Code Online (Sandbox Code Playgroud)

我试图使用 url_for,但似乎默认的root_urlrequest.host在api域中.Url_for将成为现实

api.test.com/blabla..
Run Code Online (Sandbox Code Playgroud)

虽然我想要它

test.com/blabla...
Run Code Online (Sandbox Code Playgroud)

Url_for可以带参数

host: ...
Run Code Online (Sandbox Code Playgroud)

将它设置为test.com/,问题是如何获取主机的root/base url(test.com)? root_urlrequest.host都是api.test.com.

有任何想法吗?谢谢.

ruby-on-rails rails-routing url-for ruby-on-rails-3

33
推荐指数
3
解决办法
5万
查看次数

使用url_for查询参数?

url_for([:edit, @post])
Run Code Online (Sandbox Code Playgroud)

工作和生成/comments/123/edit.现在我需要添加一个查询参数,以便代替

/comments/123/edit
Run Code Online (Sandbox Code Playgroud)

它是

/comments/123/edit?qp=asdf
Run Code Online (Sandbox Code Playgroud)

我试过url_for([:edit, @post], :qp => "asdf")但没有去.

ruby-on-rails query-parameters url-for ruby-on-rails-3

30
推荐指数
4
解决办法
2万
查看次数

使用Flask中的变量和url_for构建错误

在类似问题的互联网上找到一两个人,但没有看到任何地方发布的解决方案.我从下面的代码/模板中得到了构建错误,但无法确定问题的位置或原因.似乎模板没有识别该功能,但不知道为什么会发生这种情况.任何帮助将不胜感激 - 现在已经敲了两下我的键盘.

功能:

@app.route('/viewproj/<proj>', methods=['GET','POST'])
def viewproj(proj):
Run Code Online (Sandbox Code Playgroud)

...

模板摘录:

{% for project in projects %}
  <li>
<a href="{{ url_for('viewproj', proj=project.project_name) }}">
{{project.project_name}}</a></li>
{% else %}
No projects
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

错误日志:https: //gist.github.com/1684250

编辑:还想包括它在构建URL时没有识别变量"proj",所以它只是将值附加为参数.这是一个例子:// myproject/viewproj?projname = what + up

最后几行:

[Wed Jan 25 09:47:34 2012] [error] [client 199.58.143.128]   File "/srv/www/myproject.com/myproject/templates/layout.html", line 103, in top-level template code, referer: xx://myproject.com/
[Wed Jan 25 09:47:34 2012] [error] [client 199.58.143.128]     {% block body %}{% endblock %}, referer: xx://myproject.com/
[Wed Jan 25 09:47:34 …
Run Code Online (Sandbox Code Playgroud)

python build-error werkzeug url-for flask

18
推荐指数
3
解决办法
5万
查看次数

Rails:在ActionMailer视图中生成完整的URL

我正在使用ActionMailer发送注册确认电子邮件.电子邮件需要包含一个返回网站的链接以验证用户,但我无法说服Rails生成完整的URL(包括域等).

我正在使用:

<%= url_for :controller => 'login', :action => 'verify', :guid => @user.new_user.guid, :only_path => false, :host => 'http://plantality.com' %>
Run Code Online (Sandbox Code Playgroud)

在我看来

b部分:

在开发模式下,如果我没有在上面的链接中指定主机explicilty,则Rails会抱怨.但我不想在制作中这样做.有解决方案吗

host ruby-on-rails actionmailer url-for

16
推荐指数
3
解决办法
2万
查看次数

Rails url_for和命名空间模型

在Rails中,是否可以在模块中命名模型并仍然从中获得正确的行为url_for

例如,在这里,url_for按预期工作:

# app/models/user.rb
class User < ActiveRecord::Base
end

# config/routes.rb
resources :users

# app/views/users/index.html.haml
= url_for(@user)    # /users/1
Run Code Online (Sandbox Code Playgroud)

User模型放入模块后,url_for抱怨一个未定义的方法m_user_path:

# app/models/m/user.rb
module M
  class User < ActiveRecord::Base
  end
end

# config/routes.rb
resources :users

# app/views/users/index.html.haml
= url_for(@user)    # undefined method 'm_users_path'
Run Code Online (Sandbox Code Playgroud)

是否有可能有url_for忽略模块M::User,并返回user_path用于url_for(@user)代替m_user_path

UPDATE

所以,经过近5年的时间,这是解决方案,感谢esad.这已在Rails 4.2中测试过.

# app/models/m/user.rb
module M
  class User < ActiveRecord::Base
  end
end

# app/models/m.rb
module M …
Run Code Online (Sandbox Code Playgroud)

namespaces ruby-on-rails url-for ruby-on-rails-3

13
推荐指数
1
解决办法
4509
查看次数

如何将javascript或css文件加载到BottlePy模板中?

我想用BottlePy返回一个html模板.这很好用.但是如果我在我的tpl文件中插入这样的javascript文件:

<script type="text/javascript" src="js/main.js" charset="utf-8"></script>
Run Code Online (Sandbox Code Playgroud)

我收到404错误. (无法加载资源:服务器响应状态为404(未找到))

有谁知道如何解决这个问题?

这是我的脚本文件:

from bottle import route, run, view

@route('/')
@view('index')
def index():
    return dict()
run(host='localhost', port=8080)
Run Code Online (Sandbox Code Playgroud)

这是模板文件,位于"./views"子文件夹中.

<!DOCTYPE html>
<html lang="de">
    <head>
        <meta charset="utf-8" />
        <script type="text/javascript" src="js/main.js" charset="utf-8"></script>
    </head>
    <body>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

也许它是从开发服务器查找我的js文件的"rootPath/js/main.js"?

文件的结构是:

app.py
-js
 main.js
-views
 index.tpl
Run Code Online (Sandbox Code Playgroud)

谢谢.

javascript python templates url-for bottle

13
推荐指数
1
解决办法
2万
查看次数

如何使用带有多个参数的Flask Jinja2 url_for

大家!

我在使用jinja2 url_for()函数时遇到了问题.

我有一条路线:

@app.route('/article/<int:article_id>/<url_title>/', methods=['GET'])
def article_page(article_id, url_title):
    article = Article.query.get(article_id)
    if article == None:
        abort(404)
    return render_template('article.html', article=article)
Run Code Online (Sandbox Code Playgroud)

在jinja模板文件中,我想创建一个链接到article_page的URL,所以我这样写:

<h5>
  <a href="{{ url_for('article_page',article_id=article.id,url_title=article.url_title) }}">{{ article.title }}</a>
</h5>
Run Code Online (Sandbox Code Playgroud)

但是当我运行这个页面时,我收到一个错误:

raise BuildError(endpoint, values, method)
BuildError: ('article_page', {'article_id': 1}, None)
Run Code Online (Sandbox Code Playgroud)

好像第二个参数'url_title'缺失了.如何正确使用带有多个参数的url_for()?感谢大家!

python jinja2 url-for flask

13
推荐指数
2
解决办法
3万
查看次数