问题标签 [url-for]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2318 浏览

flask - 烧瓶导航栏 url_for

有没有更好的方法将 Flask 中的导航栏项目与 JinJia2 模板链接?

我不想为导航栏中的每个项目创建render_template到该 HTML 页面的路由

我尝试使用变量创建另一个路由,但它仅适用于template文件夹根目录下的 HTML 页面

如果我想获取template/team文件夹下的页面,它会返回 500 错误

我这样做是否正确链接导航栏?如何修复我的路线以使其完美运行,或者有更好的方法吗?

0 投票
2 回答
1531 浏览

python - 在 Flask 和 Flask-WTF 中使用路径和可选参数重定向到新页面不起作用

我正在使用 Flask 和 Flask-WTF,我的views.py文件中有以下代码:

我想要并期望它做的是,当有人在表单搜索字段中放置一些文本并点击搜索按钮时,它会返回该值,然后我重定向到适当的页面,例如他们搜索foo并最终到达 /help /富。

遗憾的是,来自表单验证位的重定向没有按需要重定向。它似乎正在重新加载当前页面。

我知道表单正在获取并返回数据,因为flash调用显示了正确的信息,例如,'Searched for: foo'但是当我将关键字传递给url_for页面时,再次简单地重新加载。手动导航到/help/foo工作正常。

我已经测试过它url_for正在工作,当我手动输入关键字时,它会根据需要创建适当的路径,例如print url_for('help', keyword='foo')prints /help/foo

任何人都知道为什么它没有按需要重定向?

编辑:如果有人想看看到底发生了什么,让它在Heroku上运行。

0 投票
2 回答
4663 浏览

python - python flask url_for 抛出常量 werkzeug 构建错误

我在一个非常简单的应用程序中遇到烧瓶 url_for('') 错误。

以上是我的蓝图文件,这些路线工作正常,但如果我尝试这样做

我只是得到这个错误:

谁能帮我弄清楚这里发生了什么?在我的 html 页面中,我可以打印出静态文件的位置:

但如果我尝试这样做:

我再次得到同样的错误。有人对如何进行有一些建议吗?

0 投票
1 回答
647 浏览

python - 通过 Cron 作业的烧瓶网页 - url_for 调用中断

我有一个脚本存在于我的 Flask 应用程序中,每 5 分钟执行一次。出于很多原因。但这没关系。

当我运行此代码时,我现在希望在此网页中包含指向我的 app.py Flask 应用程序中的函数的链接。

应用程序.py

kickoff.py按计划运行。

错误

任何帮助将非常感激。


更新:

我什至无法找到任何与我试图做的事情相近的东西。我知道我可以重建它,以便后台 Python 代码获取信息并app.py构建 HTML。后台应用程序将填充数据库,然后其中的一个函数app.py将从数据库中获取所需的信息并发布到 HTML 页面。

虽然这是最后的手段,因为它需要我重新设计应用程序的整个部分,但我仍然想看看是否有一个解决方案可以让我在app.pyFlask 之外生成这个网页。

0 投票
1 回答
18238 浏览

python - 我如何链接到不在烧瓶中的静态文件夹中的图像

在烧瓶中,如何提供不在静态文件夹中的图像?

我目前将用户上传的照片保存在烧瓶文件夹之外的目录中(打开openshift,图像当前保存在数据文件夹下app-root/data,烧瓶文件位于app-root/repo/)。

在我的模板中,我如何提供图像文件?

使用url_for,我如何引用烧瓶文件夹之外的这些图像文件?

如您所见,烧瓶应用程序文件夹外的数据文件夹。问题是如何data/uploads从烧瓶应用程序目录生成存储在(上一级)中的文件的链接?

0 投票
1 回答
2062 浏览

javascript - 从javascript调用到python时带有参数的Flaskr url_for不起作用

我正在创建一个 Web 应用程序。

在 javascript 中,我对我的 python 脚本进行 ajax 调用,处理并将结果作为响应发送回。/process/ 是用于处理作为 json 发送的值的 python 脚本的路径,即 value1 和 value2。我在键“结果”中将响应作为 json 设置值发回。

在 ajax 的成功块中,值存储在 name_value 中,这应该作为参数传递给 python 路由方法。

Javascript:

Python脚本:

如果在 url_for 中传递参数,在这种情况下我不会收到参数值。如果我对参数进行硬编码,我可以在 python 脚本中接收参数值,如下所示,

任何帮助表示赞赏。提前致谢。

0 投票
1 回答
1271 浏览

python - 当 url 未指定语言时,无法使用 Flask-babel 和蓝图路由 url

我已经在 Flask-babel 周围挖掘了一段时间,但似乎无法url routing通过简单的方式获得blueprint. 这是精简的应用程序

在我的__ init __.py 文件上,

蓝图views.py文件中

只要我导航到http://localhost:5000/fr但当我导航到http://localhost:5000/(没有 lang)时,我得到 404 错误。正常 - 因为蓝图需要一个 lang_code 作为前缀。

当用户第一次导航到http://localhost:5000/(没有 lang)时,我希望该站点以“fr”的语言显示页面。如果用户然后将其切换到英语并导航到http://localhost:5000/,我希望它以英语而不是法语显示。似乎无法让这个工作!

0 投票
1 回答
611 浏览

ruby-on-rails-4 - url_for 在 Rails 4 中的 rake 任务发送的电子邮件中

我有一个 rake 任务,它会在一天中发送玩家活动的每日摘要电子邮件。(请参阅下面的示例代码。)如果我PlayerActivityMailer.activity_report.deliver在控制台中运行,一切正常。但是,当我尝试调用 rake 任务时,出现以下错误:

在做了一些研究之后,我发现在 Rails 4 中,它们完全被削弱了ActionView::Helpers::UrlHelper.url_forhttp://apidock.com/rails/v4.1.8/ActionView/Helpers/UrlHelper/url_for - 注意 4.0.2 下的巨大红色减号) . 如果您查看源代码,您会看到我看到的错误 - 它不再需要选项。据我所知,该功能仍然存在于其他url_fors 中,例如ActionDispatch::Routing::UrlFor. 此外,错误消息建议包括Rails.application.routes.url_helpers.

我试过的

  • include ActionDispatch::Routing::UrlFor在 rake 任务(任务内部)和邮件程序中(同时,并且分别)
  • include Rails.application.routes.url_helpers在相同的位置和配置中,无论是否UrlFor包含包含。

错误仍然存​​在。ActionView::Helpers::UrlHelper我的猜测是,页面视图仍然坚持使用url_for. 我不认为我可以在视图中包含实际的东西(即使我可以,这看起来也很草率而且很老套)。

示例代码 (高度消毒)

配置/环境/development.rb:

lib/tasks/player.rake:

应用程序/邮件程序/player_activity_mailer.rb:

应用程序/视图/player_activity_mailer/activity_report.html.erb:

我的 routes.rb 文件中还有一个模型 Player,resources :players以及一个与 Player 关联的 PlayerActivity 类。

我目前@base_url = Rails.configuration.action_mailer.default_url_options[:host]在我的邮件操作和"http://#{@base_url}/players/#{activity.player.id}"我的视图中使用(非常可怕的)解决方法,而不是 player_url 部分。

帮助!

0 投票
3 回答
1092 浏览

ruby-on-rails - 接受用于填充 `url_for` 方法的 URL 参数是否安全?

我正在使用 Ruby on Rails 4.1.1,我正在考虑接受直接传递给url_for方法的参数(通过 URL 查询字符串),这种方式:

采用上述方法,用户可以在执行操作后被重定向。但是,我认为人们可以随意输入params可能导致安全问题的...

接受用于填充url_for方法的 URL 参数是否安全?什么是陷阱?在最坏的情况下会发生什么?


通过params在对我的应用程序的请求期间记录,我注意到 Rails 添加了always :controlleraction参数。也许确认url_for可以以上述方式使用,因为它在内部受到保护并且像 Rails 一样工作。

0 投票
1 回答
658 浏览

ruby-on-rails - Strange behavior of `url_for` with argument `params`

I am using Ruby 2.1.1 and Ruby on Rails 4.1.1.

Given...

... I access the URL

... in the rendered edit view, within the form, I have:

... in my controller I have:

When I submit the form then, by logging, I get:

In url_for I passed params[:hash] that should be { "controller" => "articles", "action" => "show" }, right? Why I get :controller => "users/articles" and the added :user_id => "1"?! Is it a bug?

The strange behavior relates an automatic namespacing: when I inspect params[:hash] it is { "controller" => "articles", "action" => "index" } but when I pass it to the url_for method it becomes { :controller => "users/articles", :action => "show", :user_id => "1"}.


Note: The problem does not occur with not nested resources. That is, for instance, when the initial URL is as-like


By looking at the ActionDispatch::Routing::UrlFor#url_for source code I see it runs reverse_merge!(url_options) when options is a Hash.

After some deeping I came up by using the following code (that seems to work as expected) in order to skip the reverse_merge!(url_options):

instead of using:

It happens even by using Ruby on Rails 4.2.0.