Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用参数设置()的url__Python_Postgresql_Flask_Jinja2_Url Routing - Fatal编程技术网

Python 使用参数设置()的url_

Python 使用参数设置()的url_,python,postgresql,flask,jinja2,url-routing,Python,Postgresql,Flask,Jinja2,Url Routing,我在学烧瓶,我被困在这里了 如何为带有参数(参数)的搜索结果创建链接? 我的应用程序只使用Flask和Jinja2以及HTML搜索书籍并在HTML页面上呈现它们 因此,我的HTML只有以下功能: <ul> {% for x in lk1 %} <li><a href="{{ url_for('bookPage'}}">{{ x[2] }} (by) {{ x[3] }} (year) : {{ x[4] }}</a>&l

我在学烧瓶,我被困在这里了

如何为带有参数(参数)的搜索结果创建链接?

我的应用程序只使用Flask和Jinja2以及HTML搜索书籍并在HTML页面上呈现它们

因此,我的HTML只有以下功能:

 <ul>
   {% for x in lk1 %}
      <li><a href="{{ url_for('bookPage'}}">{{ x[2] }}   (by) {{ x[3] }}  (year) :  {{ x[4] }}</a></li>
   {% endfor %}
 </ul>
    {lk1%中x的%1}
  • {%endfor%}
其中
lk1
是Flask从SQL中收集的书籍列表 和
x
是来自SQL数据库的原始信息

现在在页面
bookpage.html
中,它是空的,我需要传递带有URL的参数,以便我可以在页面上呈现它们,或者获取关于这本书的其余信息,并在图书页面中呈现它,如果您能帮助我理解如何根据我的代码制作图书标题的URL,它是
{x[2]}
我看到ppl做了一些类似于
的事情,但我不知道它是如何工作的


谢谢大家!

我认为,您必须了解有关使用flask和jinja创建变量url的信息

变量url的示例

HTML

<ul>
    {% for x in lk1 %}
      <li><a href="{{ url_for('bookPage', title=x[2] }}">{{ x[2] }}   (by) {{ x[3] }}  (year) :  {{ x[4] }}</a></li>
    {% endfor %}
</ul>
    {lk1%中x的%1}
  • {%endfor%}
Python

@app.route('/books/<title>' )
# the name of this function have to be used in 
# url_for ('nameOfFunction',  name_of_variable_part_of_url=some_internal_variable)
def bookPage(title):
     # code, that will creat yourlist
     # book.html - template for book
     # listofvariables - variables for book's page
     # 
     return render_template ("book.html", listofvariables=yourlist)
@app.route(“/books/”)
#此函数的名称必须在中使用
#url\u for('nameOfFunction',变量的名称\u\u部分\u\u\u url=某些内部变量)
def书页(标题):
#代码,这将创建您的列表
#book.html-图书的模板
#listofvariables-书本页面的变量
# 
返回render_模板(“book.html”,listofvariables=yourlist)
链接到一个类似的问题:

更新:要在url中使用许多变量,必须更改html和python

Html:

<a href="{{ url_for('bookPage', title=x[2], heading=x[3]) }}">all your text </a>
@app.route('/books/<title>-<heading>' ) 
def bookPage(title, heading):

Python:

<a href="{{ url_for('bookPage', title=x[2], heading=x[3]) }}">all your text </a>
@app.route('/books/<title>-<heading>' ) 
def bookPage(title, heading):
@app.route('/books/-'))
def书页(标题、标题):
模板

<ul>
{% for x in book_list %}
    <li><a href="{{ url_for('bookpage', title=x.title, book_id=x.id }}">{{ x.title }}   (by) {{ x.author }}  (year) :  {{ x.year }}</a></li>
{% endfor %}
</ul>
我建议您使用Book并将其作为如下所示的对象,您将能够访问Jinja模板中所示的属性

class Book(db.Model):
    id = db.Column(db.Integer, db.ForeignKey)
    title = db.Column(Text)
    author = db.Column(Text)

如果你想访问书籍页面,你可以为书籍和页面设置一对多模式,即如果你是上传内容的人,一本书有多个页面。

Url\u用于应用程序中定义的Url如果你正在设置外部Url,你可能只需要字符串nd href=stringThank非常有效!!但我能传递的不仅仅是标题吗?当我添加一个以上的参数时,我不断收到一个错误>>>>-->-
  • -->错误是:---缺少一个必需的位置参数也请您提供一个好的资源“使用flask和jinja创建变量url”的链接。我找不到有价值的信息,例如对于url()html:
    和python,两行:
    @app.route('/books/-')
    def bookPage(标题、标题):