网站建设必须买数据库么,东莞网站排名优化费用,电子商务网站建设与维护试卷答案,wordpress搬家到nginx目标#xff1a; 做一个搜索网页#xff0c;搜索当前路径下是否含有指定关键字的文件#xff0c;如果有就列出来#xff0c;没有返回消息
第一步#xff1a;我们需要先显示一个搜索页面#xff0c;页面上需要有一个可以输入的对话框#xff0c;一个按钮执行搜索 建立ht…目标 做一个搜索网页搜索当前路径下是否含有指定关键字的文件如果有就列出来没有返回消息
第一步我们需要先显示一个搜索页面页面上需要有一个可以输入的对话框一个按钮执行搜索 建立html模板此处我创建了find.html 第二步当点击搜索按钮后应该要跳转网页输出搜索结果到网页上建立一个result.html 第三步在第二步中应该要有一个函数去遍历文件夹搜素里面的文件是否有涵盖搜索内容
find.html
!DOCTYPE html
html
head
meta charsetutf-8
titlesearch/title
/head
bodyform action/deal_request methodgetinput typetext nameq /input typesubmit value搜索 //form
/body
/html这里有几个关键的元素
action/deal_request #这里的/deal_request 代表的是准备跳转页面的函数名
methodget # 代表请求类型分 get和post
input typetext nameq / #创建一个文本框名字叫q
input typesubmit value搜索 / #创建一个按钮显示的名字叫做 搜索result.html
h1{{ result }}/h1他可以接受变量 result,显示result到网页上 这两个html模板需要放到与脚本同路径下的 templates 文件夹中否则脚本找不到
OK接下来是初版
from flask import request, Flask, render_template
import os# 实例化
app Flask(__name__)
# 这里是主页面即第一步显示的网页有一个对话框和搜索按钮
app.route(/)
def findMain():return render_template(find.html)# 设定第二步的跳转网页methods 设定请求类型这里可以指定一种类型就不用判断了。主要是类型不同获取结果的方式不同
app.route(/deal_request, methods [GET, POST])
def deal_request():# get 类型抓取对话框内的内容if request.method GET:find_key request.args.get(q, )# post 类型抓取对话框内的内容elif request.method POST:find_key request.form.get(q, )# 调用find_result函数开始遍历文件夹搜索文件find_result find_file(find_key)# 跳转网页输出结果return render_template(result.html, resultfind_result)def find_file(find_key):allfiles list()findfiles list()# 遍历文件夹及子文件夹和文件等for root, dirs, files in os.walk(os.getcwd(), topdownFalse):for filename in files:# 将文件路径和文件名结合生成路径allfiles.append(os.path.join(root, filename))# 判断这个路径是否含关键字if find_key in filename:findfiles.append(os.path.join(root, filename))# 假设没搜到返回 no found,搜到了则将搜索到的结果组合成字符串返回if len(findfiles) 0:result fno found file: {find_key}else:result find result:for x in findfiles:result f{x}\nreturn resultif __name__ __main__:app.run(host0.0.0.0, port5000)我当前文件夹结构
脚本运行后可以看到
在浏览器打开 http://127.0.0.1:5000 效果 输入搜索的关键字py