1.0 Quick Start
Theory
- Client-Side = Restaurant
- Server = Kitchen
- Database = Larder
网站就像一家餐厅,服务员和厨师从数据库中拿取数据进行加工渲染重新组合成新的 HTML CSS 和 JS 文件呈现给用户
- Framework 和 Library 最大的区别就是你必须按照框架的规则进行编程
Basics
Flask 当中的 __name__
用于确定应用当前位置,这里如果直接打印 __name__
会显示 __main__
__main__
is the name of the scope in which top-level code executes. A module's __name__
is set equal to __main__
when read from standard input, a script, or from an interactive prompt.
只有当它作为一个脚本运行时才会执行
路由
客户端(例如 Web 浏览器)把请求发送给 Web 服务器,Web 服务器再把请求发送给 Flask 应用实例。应用实例需要知道对每个 URL 的请求要运行哪些代码,所以保存了一个 URL 到 Python 函数的映射关系。处理 URL 和函数之间关系的程序称为路由。
@app.route('/')
def index():
return 'Hello World!'
@app.route('/user/<name>')
def user(name):
return 'Hello, {}!'.format(name)
尖括号里的内容就是动态部分,Flask 会将动态部分作为参数传入函数:
路由 /user/<int:id>
只会匹配动态片段,路由中支持 string, float 和 path 类型
Python Decorators
# Functions can be nested in other functions
def outer_function():
print("I'm outer")
def nested_function():
print("I'm inner")
nested_function()
outer_function()
# Functions can be returned from other functions
def outer_function():
print("I'm outer")
def nested_function():
print("I'm inner")
return nested_function
inner_function = outer_function()
inner_function()
启动方法
指令行启动:
单元测试调试:
或在代码内部直接定义调试
重载器和调试器会自动检测代码变动在 Web 端抛出异常
flask run
的详细拓展参数直接输入 flask --help
直接查看即可