Python Flask案例:制作一个Linux命令查询网站
来自CloudWiki
python
from flask import Flask from flask import Flask, render_template, flash, redirect, url_for, session, request, logging app = Flask(__name__)#创建一个该类的实例,第一个参数是应用模块或者包的名称 def search(kw): #此处应该插入mysql查询命令 linux_dict ={ 'cd':"切换目录", 'ls':"查看目录", 'mkdir':"创建目录", 'echo':"输出信息", 'cat':"查看文件", } detail ="" for k in linux_dict: if kw == k: detail =linux_dict.get(k) if detail=="": detail="对不起,该条命令暂时未收录" return kw,detail @app.route('/', methods=['GET', 'POST']) def index(): if request.method == 'GET': # 如果展示表单 return render_template('index.html') elif request.method == 'POST':#如果是提交表单 keywords = request.form['keywords'] name,detail =search(keywords) return render_template('index.html',name=name,detail=detail) # 用户登录 @app.route('/login', methods=['GET', 'POST']) def login(): if "logged_in" in session: # 如果已经登录,则直接跳转到控制台 return redirect(url_for("dashboard")) if request.method == 'GET': # 如果展示表单 return render_template('index.html') elif request.method == 'POST':#如果是提交表单 # 从表单中获取字段 username = request.form['username'] password_candidate = request.form['password'] if username=="zhangsan" and password_candidate =="123456" : # 如果查到记录 # 写入session session['logged_in'] = True session['username'] = username flash('登录成功!', 'success') # 闪存信息 return redirect(url_for('dashboard')) # 跳转到控制台 else: # 如果密码错误 error = '用户名和密码不匹配' return render_template('index.html', error=error) # 跳转到登录页,并提示错误信息 if __name__ == '__main__':#程序入口 #app.run()#让应用运行在本地服务器上。 app.secret_key='secret123' app.run(host='0.0.0.0',port="5006",debug="true") #允许任意网址访问本站
html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> </head> <body> <div class="content"> <h1 class="title-center">Linux命令查询</h1> <form action="" method="POST" > <div class="form-group"> <label>请输入linux 关键词(例如,"ls")</label> <input type="text" name="keywords" class="form-control" ><button type="submit" class="btn btn-primary">查询</button> </div> <div style="color:blue;font-size:30px;line-height:150%;margin-left:40px"><h2>{{name}}</h2></div> <div style="color:blue;font-size:30px;line-height:150%;margin-left:40px">{{detail}}</div> </form> </div> <script> </script> </body> </html>