《flask Web 开发》读书笔记 & chapter 2

PS:flask 及github的新手向文章,大神绕路

《flask Web 开发》该书的优势在于 结合作者可以设计的代码仓库,一步步展现一个项目的各个方面的细节,依次来展现flask框架的各个方面,但是本书 没有细致的阐述 flask 框架的语法,重点是阐述flask开发的基本流程,代码阅读起来会感觉逻辑十分混乱,不适合结构图形式的笔记,因此 通过复现书中的代码及仓库的创建过程来学习git及flask,同时记录遇到的语法疑点,进行进一步查证。

环境设置

  • 工作目录:E:\study\evernote\material\flasky2
  • 创建本地仓库:git init
  • 添加 git忽略规则 .gitignore
  • 添加笔记文件 readme.md
  • 创建虚拟环境:virtualenv venv,>venv\scripts\activate, 向 .gitignore 添加 venv
  • 安装 flask:pip install flask , 向 .gitignore 添加 python 的忽略项 *.py[cod] *.so *.egg *.egg-info dist build

第一个完整程序

from flask import Flask
app = Flask(__name__)

@app.route('/')
def index():
    return '<h1> Hello World !</h1>'
# 路由的基本使用
@app.route('/user/<name>')
def user(name):
    return '<h1> Hello %s !</h1>' % name
# 动态路由的基本实现
if __name__ == '__main__':
    app.run(debug=True)
  • 添加到本地仓库, git add ., git commit -m "2a, basic use of route"

上下文对象和url_map

from flask import Flask
from flask import request

app = Flask(__name__)

# 路由的基本用例
@app.route('/')
def index():
    # return '<h1> Hello World !</h1>'
    # request 请求上下文的使用
    # use_agent = request.headers.get('User-Agent')
    # return '<h1> Your brower is %s !</h1>' % use_agent
    # url_map 的信息
    return '<p> url_map is %s !</h1>' % app.url_map


# 动态路由的基本用例
@app.route('/user/<name>')
def user(name):
    return '<h1> Hello %s !</h1>' % name

if __name__ == '__main__':
    app.run(debug=True)
  • 添加到本地仓库, git add ., git commit -m "2b, request and url_map"

响应对象 Response 的使用

from flask import Flask
from flask import make_response

app = Flask(__name__)

# 路由的基本用例
@app.route('/')
def index():
    # 相应 Response 对象的基本使用
    response = make_response( '<h1> This file carries with a cookie !</h1>' )
    response.set_cookie('answer','42')
    return response

# 动态路由的基本用例
@app.route('/user/<name>')
def user(name):
    return '<h1> Hello %s !</h1>' % name

if __name__ == '__main__':
    app.run(debug=True)
  • Chrome 浏览器查看 cookie 点击 url 左侧的感叹号
  • 添加到本地仓库, git add ., git commit -m "2c, response object"

重定向对象 redirect 和 abort 的使用

from flask import Flask
from flask import redirect
from flask import abort

app = Flask(__name__)

# 路由的基本用例
@app.route('/')
def index():
    # 重定向响应 redirect(url)
    return redirect('http://baidu.com')

# 动态路由的基本用例
@app.route('/user/<name>')
def user(name):
    if name !='zhang':
    # 处理错误的abort 函数的使用
        abort(404)
    return '<h1> Hello %s !</h1>' % name

if __name__ == '__main__':
    app.run(debug=True)
  • 添加到本地仓库, git add ., git commit -m "2d, redirect and abort"

flask-script 支持命令行选项

  • 安装 flask-script:pip install flask-script
from flask import Flask
from flask_script import Manager

app = Flask(__name__)
manager = Manager(app)

# 路由的基本用例
@app.route('/')
def index():
    return '<h1> Hello world !</h1>'

# 动态路由的基本用例
@app.route('/user/<name>')
def user(name):
    return '<h1> Hello %s !</h1>' % name

if __name__ == '__main__':
    manager.run()
  • 指定服务器地址 python hello.py runserver --host localhost
  • 添加到本地仓库, git add ., git commit -m "2e, flask-script basic"

查看代码及全文

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容