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

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

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

  • 环境设置
    • 第一个完整程序
    • 上下文对象和url_map
    • 响应对象 Response 的使用
    • 重定向对象 redirect 和 abort 的使用
    • flask-script 支持命令行选项

环境设置

  • 工作目录: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 '

Hello World !

' # 路由的基本使用 @app.route('/user/') def user(name): return '

Hello %s !

' % 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 '

Hello World !

' # request 请求上下文的使用 # use_agent = request.headers.get('User-Agent') # return '

Your brower is %s !

' % use_agent # url_map 的信息 return '

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

Hello %s !

' % 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( '

This file carries with a cookie !

' ) response.set_cookie('answer','42') return response # 动态路由的基本用例 @app.route('/user/') def user(name): return '

Hello %s !

' % 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/')
def user(name):
    if name !='zhang':
    # 处理错误的abort 函数的使用
        abort(404)
    return '

Hello %s !

' % 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 '

Hello world !

' # 动态路由的基本用例 @app.route('/user/') def user(name): return '

Hello %s !

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

查看代码及全文

你可能感兴趣的:(《flask Web 开发》读书笔记 & chapter 2)