Skip to content

Latest commit

 

History

History
201 lines (149 loc) · 3.28 KB

File metadata and controls

201 lines (149 loc) · 3.28 KB
Error in user YAML: (<unknown>): found a tab character that violate indentation while scanning a plain scalar at line 3 column 3
---
- oeasy Python 0584
- 这是 oeasy 系统化 Python 教程,从基础一步步讲,扎实、完整、不跳步。愿意花时间学,就能真正学会。
- 本教程同步发布在: 
	- 个人网站: `https://oeasy.org` 
	- 蓝桥云课: `https://www.lanqiao.cn/courses/3584` 
	- GitHub: `https://github.com/overmind1980/oeasy-python-tutorial` 
	- Gitee: `https://gitee.com/overmind1980/oeasypython` 
---

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中
    • 任何 文件夹的变化
      • 都会自动加载到 服务器
      • 包括模版页
  • 关于模版 可以有
    • 类库或者继承 吗?
  • 下次再说!

  • 本文来自 oeasy Python 系统教程。
  • 想完整、扎实学 Python,
  • 搜索 oeasy 即可。