Skip to content

Latest commit

 

History

History
194 lines (141 loc) · 3.04 KB

514-2626680-后台运行_显示日志_nohup_输出重定向.sy.md

File metadata and controls

194 lines (141 loc) · 3.04 KB
show version enable_checker
step
1.0
true

flask 最小应用

回忆上次

  • 上次了解了
    • 渲染 模板相关的页面
  • 可以将 后台的变量
    • 渲染到 前台的页面模版 上
  • 但是每次
    • ctrl + c停止后台
    • 修改py和html
    • 然后再重启服务器流程太复杂了
  • 可以简单一点吗?🤔

循环渲染

  • 恢复环境
from flask import render_template
from flask import request
from flask import Flask

app = Flask(__name__)

@app.route('/')
def login():
    return render_template('hello.html',nums = range(10))

if __name__ == "__main__":
    app.run(debug=True)
  • 注意这里debug模式
    • 为True

网页代码

<!doctype html>
<title>Hello from Flask</title>
{% for num in nums %}
  <h1>Hello {{ num }}!</h1>
{% endfor %}
  • 常规运行
python3 app.py 
  • 结果输出到
    • 标准输出流
  • 我想让网站服务器作为
    • 一个后台的进程
    • 持续运行

保存运行浏览

nohup python3 app.py >> flask.log 2>&1 &
  • 首先需要运行flask
    • 并将 输出和报错信息输出到日志
firefox http://localhost:5000
  • 使用火狐浏览网站

图片描述

观察日志

vi flask.log
  • 回忆log的发展历程

    • 从原木
    • 到航海日志
    • 再到服务器日志
  • G跳转到最后一行

刷新浏览器

firefox http://localhost:5000
  • 重新浏览网页后
  • 回到vim界面

vim

  • :e
    • 刷新当前文件缓存
  • G
    • 切换到最后一行
  • 发现由于有新的浏览记录
    • 日志有所刷新

修改文档

from flask import render_template
from flask import request
from flask import Flask

app = Flask(__name__)

@app.route('/')
def login():
    return render_template('hello.html',nums = range(5))

if __name__ == "__main__":
    app.run(debug=True)
  • 将range(10)修改为
    • range(5)

观察日志

  • 重新打开flask.log

  • :e

    • 刷新当前文件缓存
  • G

    • 切换到最后一行
  • 发现最新的修改已经被自动加载

刷新网页

firefox http://localhost:5000
  • 重新浏览网页
    • 发现网页后台的修改
    • 已经可以前端观察到
  • 回到vim界面

vim

  • :e
    • 刷新当前文件缓存
  • G
    • 切换到最后一行
  • 发现由于又有新的浏览记录
    • 日志又有所刷新
  • 想要结束进程怎么办?

结束进程

lsof  -i:5000
  • 找到占用5000端口的进程
kill -9 pid

总结

  • 这次了解了
    • 后台运行web服务器的方法
nohup python3 app.py >> flask.log 2>&1 &
  • 运行后
    • 将日志 输出重定向
      • 追加到 flask.log中
    • 任何 文件夹的变化
      • 都会自动加载到 服务器
      • 包括模版页
  • 关于模版 可以有
    • 类库或者继承 吗?
  • 下次再说!