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>

效果图

Python2023013001.png