Skip to content

Latest commit

 

History

History
309 lines (201 loc) · 4.79 KB

File metadata and controls

309 lines (201 loc) · 4.79 KB
Error in user YAML: (<unknown>): could not find expected ':' while scanning a simple key at line 3 column 1
---
- oeasy Python 0568
- 这是 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 最小应用

回忆上次

  • 上次 设置了
    • 服务器 调试模式
      • 输出重定向 到 日志
    • 后台运行

图片描述

  • 服务器 在后台运行后
    • 想要 结束他
    • 应该怎么办呢?🤔

观察

  • 首先要
    • 恢复 上次的 环境
    • 能 访问根下
mkdir myproject
cd myproject
vi app.py
  • 编辑app.py
from flask import Flask

app = Flask(__name__)

@app.route("/")
def hello_world():
    return "<p>Hello, oeasy!</p>"

if __name__ == "__main__":
    app.run(debug=True,host="0.0.0.0",port=8081)

访问

  • 后台运行app 并浏览
nohup python3 app.py >> flask.log 2>&1 &
firefox http://127.0.0.1:8081
  • 访问成功

图片描述

  • 如何 关闭服务器?🤔

提问

图片描述

lsof -i:8081
  • 观察 端口对应进程的 pid
kill -9 pid

实操

  • 先找到 占用端口进程 的 pid
    • 再结束 pid

图片描述

  • 结束之后
    • 服务器彻底没连接
    • 而不是 404

图片描述

  • 可以自己定义访问路径吗?

子url

  • 再次 后台启动服务器
nohup python3 app.py >> flask.log 2>&1 &
firefox http://localhost:8081/oeasy &
  • 会有 响应 吗?🤔

404

  • 服务器 有连接

图片描述

  • 但是 不能访问 请求的资源

还是构造环境

  • 建立 网站目录myproject
    • 再 进入目录
mkdir myproject
cd myproject
  • 编辑app文件
vi app.py

修改 app.py

  • 注意 第5行
    • 设置了一个 装饰器
from flask import Flask

app = Flask(__name__)

@app.route("/oeasy")
def hello_world():
    return "<p>Hello, oeasy!</p>"

if __name__ == "__main__":
    app.run(debug=True,host="0.0.0.0",port=8081)
  • 尝试运行
nohup python3 app.py >> flask.log 2>&1 &
  • 服务器 启动成功

图片描述

尝试访问oeasy

firefox http://localhost:8081/oeasy &
  • 可以访问到 /oeasy

图片描述

  • 那可以访问根下吗?

尝试访问根下

firefox http://localhost:8081/ &
  • 访问结果 为 404
    • 因为 没有 配置对根下访问的 路由

图片描述

  • 可以看看日志(log)吗?

访问日志

cat flask.log
  • 访问/oeasy 成功
    • 访问/ 失败

图片描述

  • 代码例子 在哪里呢?

观察例子

图片描述

  • 什么是路由呢?

route

  • route 就是
    • 道路
    • 网络上 指的是 网址
    • url
  • 根据 网址(url) 的 不同
    • 执行代码 则 不同

图片描述

  • 根据 url
    • 进行 路由

具体代码

  • 以下对 两个路由 进行了处理
    1. /
    2. /hello
from flask import Flask

app = Flask(__name__)
@app.route('/')
def index():
    return 'Index Page'

@app.route('/hello')
def hello():
    return 'Hello, World'

if __name__ == "__main__":
    app.run(debug=True,host="0.0.0.0",port=8081)
  • 粘贴到app.py
    • 保存

观察日志

cat flask.log
  • 监测到 代码修改
    • 自动加载

图片描述

  • 可以访问 这两个url吗?

服务器自动加载

firefox http://localhost:8081/ &
  • 实现了 对根下的路由

图片描述

firefox http://localhost:8081/hello &
  • 实现了 对/hello的路由

图片描述

观察日志

cat flask.log

图片描述

总结

  • 这次 了解到 路由
    • 用装饰器 声明url
    • 再 将路由 封装成 函数

图片描述

  • 服务器 都注册了 些路由 呢?
  • 下次再说👋🏻

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