当用户用PYTHON设置一个或一个不带值的URL时,他们怎么能输入一个/a的代码呢?

2024-10-01 16:40:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我想知道在执行以下任务时,我需要使用Python或Flask采用哪种方法:

  • 检查url是否有效
  • 如果有效,则返回该页及其子页上所有链接的列表

我的编辑器是sublime,我在WindowsPowerShell下运行它

现在我的代码显示:

enter image description here

所以当你输入一个搜索,它会转到一个新的页面并显示结果(对于示例:ddddd)在

enter image description here

但我想检查URL是否有效,如果有效,则返回该页面及其子页面上所有链接的列表,如下所示:

enter image description here

对编程界的新手有什么想法吗?(现在不是很新鲜,还有很多东西要学…)

谢谢你的帮助。在

这里是我的代码谁带来了这个结果(这是工作):

因此,一个项目文件夹的inside my.py设置为Flask,而templates文件夹的.html。在


Python文件

# -*- coding: utf-8 -*-
from flask import Flask, render_template, request
import re

app = Flask (__name__)

@app.route("/")
def index():
    return render_template('index.html')

@app.route('/search', methods=['POST', 'GET'])
def search():
    error = True
    if request.method == 'POST':
        return request.form['urlsearch']
    else:
        return request.args.get('urlsearch')

if __name__ == "__main__":
    app.run()

HTML文件

^{pr2}$

Tags: 文件代码nameimport文件夹appflask列表
2条回答

您可以使用mechanize

from mechanize import Browser

br = Browser()    
r = br.open("http://www.example.com/")

if r.code == 200:
    for link in br.links():
        print link
else:
    print "Error loading page"

urllib2和{a3}

^{pr2}$

我以前没怎么研究烧瓶,但试试这个:

据我所知,urlsearch是您从表单中获取的URL,因此添加对它的检查

@app.route('/search', methods=['POST', 'GET'])
def search():
    error = True
    if request.method == 'POST':
        return request.form['urlsearch']
    else:    
        br = Browser()    
        r = br.open(request.args.get('urlsearch'))

        if r.code == 200:
            return br.links()
        else:
            return "Error loading page"

在Flask中,你有一个app object上所有url的映射,你可以这样访问它:

urlmap = app.url_map.__dict__['_rules_by_endpoint']

因此,如果你想在你的页面上获得所有的url规则,你可以用应用程序路由公司名称:

^{pr2}$

现在您只能编辑视图文件,该文件处理“/search”路径:

    if request.method == 'POST':
        urls = getUrls()
        query = str(request.form['urlsearch'])
        if query in urls:
            return str(urls)
        else:
            return "url not in urls"

您还需要编辑html表单,该表单目前有一个错误,您将表单方法指定为get,这需要为post,否则您将永远无法访问处理post请求的块:

<form method="post" action="/search">

你会在页面上看到ULR的列表:

['/', '/search', '/static/']

相关问题 更多 >

    热门问题