Python 使用flask链接两个html页面
我正在用flask构建一个简单的订阅webapp; 我在index.html中使用Python 使用flask链接两个html页面,python,flask,Python,Flask,我正在用flask构建一个简单的订阅webapp; 我在index.html中使用url\u for() 如果我试图直接访问页面,但由于以下错误,miain页面未加载,则查看功能正在工作: 我尝试使用一个没有url_的普通a href链接,但效果不太好:/ jinja2.exceptions.UndefinedError: 'terms' is undefined Traceback (most recent call last) File "C:\Users\Mahmoud\.virtual
url\u for()
如果我试图直接访问页面,但由于以下错误,miain页面未加载,则查看功能正在工作:
我尝试使用一个没有url_的普通a href链接,但效果不太好:/
jinja2.exceptions.UndefinedError: 'terms' is undefined
Traceback (most recent call last)
File "C:\Users\Mahmoud\.virtualenvs\subscribe_form-Eu2W50ez\lib\site-packages\flask\app.py", line 2463, in __call__
return self.wsgi_app(environ, start_response)
File "C:\Users\Mahmoud\.virtualenvs\subscribe_form-Eu2W50ez\lib\site-packages\flask\app.py", line 2449, in wsgi_app
response = self.handle_exception(e)
File "C:\Users\Mahmoud\.virtualenvs\subscribe_form-Eu2W50ez\lib\site-packages\flask\app.py", line 1866, in handle_exception
reraise(exc_type, exc_value, tb)
File "C:\Users\Mahmoud\.virtualenvs\subscribe_form-Eu2W50ez\lib\site-packages\flask\_compat.py", line 39, in reraise
raise value
File "C:\Users\Mahmoud\.virtualenvs\subscribe_form-Eu2W50ez\lib\site-packages\flask\app.py", line 2446, in wsgi_app
response = self.full_dispatch_request()
File "C:\Users\Mahmoud\.virtualenvs\subscribe_form-Eu2W50ez\lib\site-packages\flask\app.py", line 1951, in full_dispatch_request
rv = self.handle_user_exception(e)
File "C:\Users\Mahmoud\.virtualenvs\subscribe_form-Eu2W50ez\lib\site-packages\flask\app.py", line 1820, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "C:\Users\Mahmoud\.virtualenvs\subscribe_form-Eu2W50ez\lib\site-packages\flask\_compat.py", line 39, in reraise
raise value
File "C:\Users\Mahmoud\.virtualenvs\subscribe_form-Eu2W50ez\lib\site-packages\flask\app.py", line 1949, in full_dispatch_request
rv = self.dispatch_request()
File "C:\Users\Mahmoud\.virtualenvs\subscribe_form-Eu2W50ez\lib\site-packages\flask\app.py", line 1935, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "C:\Users\Mahmoud\Desktop\subscribe form\app.py", line 45, in index
return render_template('index.html' )
File "C:\Users\Mahmoud\.virtualenvs\subscribe_form-Eu2W50ez\lib\site-packages\flask\templating.py", line 140, in render_template
ctx.app,
File "C:\Users\Mahmoud\.virtualenvs\subscribe_form-Eu2W50ez\lib\site-packages\flask\templating.py", line 120, in _render
rv = template.render(context)
File "C:\Users\Mahmoud\.virtualenvs\subscribe_form-Eu2W50ez\lib\site-packages\jinja2\asyncsupport.py", line 76, in render
return original_render(self, *args, **kwargs)
File "C:\Users\Mahmoud\.virtualenvs\subscribe_form-Eu2W50ez\lib\site-packages\jinja2\environment.py", line 1008, in render
return self.environment.handle_exception(exc_info, True)
File "C:\Users\Mahmoud\.virtualenvs\subscribe_form-Eu2W50ez\lib\site-packages\jinja2\environment.py", line 780, in handle_exception
reraise(exc_type, exc_value, tb)
File "C:\Users\Mahmoud\.virtualenvs\subscribe_form-Eu2W50ez\lib\site-packages\jinja2\_compat.py", line 37, in reraise
raise value.with_traceback(tb)
File "C:\Users\Mahmoud\Desktop\subscribe form\templates\index.html", line 53, in top-level template code
<a href= {{url_for(terms)}} class="terms_link">شروط المسابقة</a> <br>
File "C:\Users\Mahmoud\.virtualenvs\subscribe_form-Eu2W50ez\lib\site-packages\flask\helpers.py", line 318, in url_for
if endpoint[:1] == ".":
jinja2.exceptions.UndefinedError: 'terms' is undefined
index.html
<!DOCTYPE html>
<html lang="ar" dir="rtl">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<link rel="stylesheet" href="../static/style.css">
<title>Sea Salt Challange</title>
</head>
<body>
<header>
<p> #ثلجها_وسكراتش_بيثلجك #سي_سولت_سكراتش #تحدي_سكراتش </p>
</header>
<div >
{% if message: %}
<p class="message">{{ message }}</p>
{% endif %} <br>
</div>
<div class="from-group" >
<form action="/submit" method="POST" class="form-container" >
<div>
<input type="text" name="customer" placeholder="الأسم">
</div>
<div >
<input type="text" name='age' placeholder="السن">
</div>
<div>
<input placeholder="تاريخ الميلاد" type="text" onfocus="(this.type='date')" onblur="(this.type='text')" name= 'birth_date'>
<!-- <input type="date" name='birth_date' placeholder="تاريخ الميلاد"> -->
</div>
<div>
<input type="text" name="city" placeholder="المدينة">
</div>
<div>
<input type="text" name="mobile" placeholder="رقم الجوال">
</div>
<div>
<input type="email" name="email" placeholder="البريد الالكتروني">
</div>
<div>
<input type="text" name="job" placeholder="المهنة">
</div>
<div>
<input type="text" name="work_place" placeholder="محل العمل">
</div>
<a href= {{url_for(terms)}} class="terms_link">شروط المسابقة</a> <br>
<input type="submit" value="اشترك في التحدي">
</div>
</form>
</body>
</html>
海盐Challange
在本月15日日日日日日日日日方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方p>
{%if消息:%}
{%endif%}
的url\u的第一个参数是端点的名称。因此,您需要首先注册端点
试试看
#控制器
@app.route('/terms',endpoint='terms'))
def terms():
返回呈现模板('/terms.html')
#在模板中使用url_,如下所示
尝试过,但给出了相同的错误:/n您是否将术语作为字符串传递给url\u进行呼叫?是的,我删除了这些行并再次添加,现在它正在工作,似乎有点拼写错误:/n花了我两个多小时的时间感谢您的帮助:)
<!DOCTYPE html>
<html lang="ar" dir="rtl">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<link rel="stylesheet" href="../static/style.css">
<title>Sea Salt Challange</title>
</head>
<body>
<header>
<p> #ثلجها_وسكراتش_بيثلجك #سي_سولت_سكراتش #تحدي_سكراتش </p>
</header>
<div >
{% if message: %}
<p class="message">{{ message }}</p>
{% endif %} <br>
</div>
<div class="from-group" >
<form action="/submit" method="POST" class="form-container" >
<div>
<input type="text" name="customer" placeholder="الأسم">
</div>
<div >
<input type="text" name='age' placeholder="السن">
</div>
<div>
<input placeholder="تاريخ الميلاد" type="text" onfocus="(this.type='date')" onblur="(this.type='text')" name= 'birth_date'>
<!-- <input type="date" name='birth_date' placeholder="تاريخ الميلاد"> -->
</div>
<div>
<input type="text" name="city" placeholder="المدينة">
</div>
<div>
<input type="text" name="mobile" placeholder="رقم الجوال">
</div>
<div>
<input type="email" name="email" placeholder="البريد الالكتروني">
</div>
<div>
<input type="text" name="job" placeholder="المهنة">
</div>
<div>
<input type="text" name="work_place" placeholder="محل العمل">
</div>
<a href= {{url_for(terms)}} class="terms_link">شروط المسابقة</a> <br>
<input type="submit" value="اشترك في التحدي">
</div>
</form>
</body>
</html>
# Controller
@app.route('/terms', endpoint='terms')
def terms():
return render_template('/terms.html')
# In template use url_for like below
<a href= "{{url_for('terms')}}" class="terms_link">شروط المسابقة</a>