输入一个链接以提交表单,然后从该链接中提取数据-FLASK



我在应用程序中设置了一个小部分,用户可以在其中添加链接并提交/申请工作。然后,我想从用户输入的链接中提取信息,并将其保存在我的数据库中。然而,我却陷入了困境。我似乎无法获得请求。请识别输入,因为它是一个链接。此外,我不确定如何在数据库的特定列中保存信息。

HTML表单是这样的:

<!DOCTYPE html> {% extends "layout.html" %} {% block content %}
<article class="media content-section">
<h1 class="article-content">{{ current_post.job_title }}</h1>
<h5 class="article-content">{{ current_post.company}}</h5>
<p class="article-content">{{ current_post.sector }}</p>
<p class="article-content">{{ current_post.location }}</p>
<p class="article-content">{{ current_post.employment_type }}</p>
<p class="article-content">{{ current_post.description }}</p>
<p class="font-weight-bold">Requirements:</p>
<ul>
<li class="article-content">{{ current_post.requirement_1 }}</li>
<li class="article-content">{{ current_post.requirement_2 }}</li>
<li class="article-content">{{ current_post.requirement_3 }}</li>
<li class="article-content">{{ current_post.requirement_4 }}</li>
<li class="article-content">{{ current_post.requirement_5 }}</li>
<li class="article-content">{{ current_post.requirement_6 }}</li>
</ul>
</li>
<p>To apply for this job please submit your Badgr backpack link</p>
<form method="POST" class="row g-3" action="/apply">
<div class="col-auto">
<label for="url" class="visually-hidden">Backpack Link</label>
<input type="Link" class="form-control" name="url" id="url" placeholder="Backpack Link">
</div>
<div class="col-auto">
<button type="submit" class="btn btn-primary mb-3">Apply</button>
</div>
</form>
</article>
{%endblock content %}

我的py文件中与此相关的部分如下:

变量dataskills中的信息是我想要保存到数据库中的信息。

@app.route("/apply", methods=['GET', 'POST'])
@login_required
def apply():
if request.method == 'POST':
r = requests.get(url)
jsondata = r.json()
listed = []
for song in jsondata['badges']:
new = listed.append(song['badge'])
for b in listed:
r = requests.get(b)
text_json = json.loads(r.text)
dataskills = text_json['name']
ap = Applicant(skills = dataskills) #skills is the column within the database I want to save info into
db.session.add(ap)
db.session.commit()      
flash('Congratulations you have successfully applied for this job!', 'success')
return redirect(url_for('jobs'))

我没有正确理解您的代码,但我发现了您的问题,您没有从form获得url

您可以这样做以从form:获取数据

url=request.form["url"]

语法是基本的,request.form[<string from name>]。在您的情况下,CCD_;url";名义上。因此,对于您来说,代码变成request.form["url"]

完整代码:

@app.route("/apply", methods=['GET', 'POST'])
@login_required
def apply():
if request.method == 'POST':
url=request.form["url"]
r = requests.get(url)
jsondata = r.json()
listed = []
for song in jsondata['badges']:
new = listed.append(song['badge'])
for b in listed:
r = requests.get(b)
text_json = json.loads(r.text)
dataskills = text_json['name']
ap = Applicant(skills = dataskills) #skills is the column within the database I want to save info into
db.session.add(ap)
db.session.commit()      
flash('Congratulations you have successfully applied for this job!', 'success')
return redirect(url_for('jobs'))

最新更新