7、Flask实战
1Flask概述
1-1 Python Web 开发及Flask 简介
Python的特点:
简单
面向对象
脚本语言
可扩展性
丰富的标准库
活跃的开源社区
Python的应用:
Web
爬虫 – request
科学计算
机器学习
自动化测试
系统运维
Web开发:
Djongoflask web.py tornado web2py
Flask – 轻量级 微内核可扩展
Django Flask
类型 全栈式 微内核
ORM 有 无
路由 有 有
模板 有 有
缓存 有 无
生成后天 有 无
数据验证 有 无
1-2 Flask开发环境搭建
Python包管理工具 – 都是全局安装的,会有版本冲突的问题
easy_install
pip
常用pip命令
pipinstall
pipuninstall
piplist
windows下开发环境搭建:
在C:\Python27\Scripts目录下,pipinstall flask
Linux下开发环境搭建:
sudoapt-get install python-pip
sudo pip install flask
建议在Linux下进行开发
1-3 Flask开发工具
纯文本开发工具:
Notepad++ Sublime Emacs Vim
配置基于Vim的Python开发环境:
Vundle
YouCompleteMe – 自动补全
NERDTree – 方便在文件和文件夹快速跳转
Vim-Jinja2-Syntax – 语法增强
集成开发环境
VS
Eclipse + pydev
Pycharm
2Flask 开发基础与入门
2-1 Web 开发基础
前端开发基础:
Html
CSS
JavaScript
前端常用的库与框架:
Bootstrap
jQuery
ANGUIARJS
React
代码管理:
Git
Github
MVC设计模式
View
Controller
Model
Http协议
基于请求与响应模式
无状态
HTTP请求:
GET
POST
DELETE
PUT
2-2 Flask中的Hello World
0.0.0.0让其它电脑可连接到开发服务器,8000为端口号,debug=True将错误提示页面打开
//app.py
if __name__ == '__main__':
app.run(host='0.0.0.0',port=5000,debug=True)
路由– 为URL指定一个视图函数
路由可以从前端到服务器传递参数
@app.route('/users/<id>')
def user_id(id):
return 'hello user: '+id
访问:http://localhost:5000/users/yx
from flask import Flask, request
@app.route('/query_user')
def query_user():
id = request.args.get('id')
return 'query user:' + id
访问:http://localhost:5000/query_user?id=00
反向路由– 通过视图函数反导出url地址
from flask import Flask, request, url_for
@app.route('/query_url')
def query_url():
return 'query url:' + url_for('query_user')
2-3 Flask中的模板
模板
将需要的数据放到模板中进行渲染
flask依赖的模板引擎jianja2(jianja2的语法)
模板的简单使用
条件语句
<body>
{% ifuser %}
hello {{ user.user_name }}
{% else %}
no this user
{% endif %}
</body>
循环语句
<body>
{% for user in users %}
{{ user.user_id }} -- {{ user.user_name }}<br> //换行
{% endfor %}
</body>
模板的继承 - 提高代码的复用
//Base.html 不变的部分
<body>
<div>
<h1>Header 俞祥</h1>
</div>
<div>
{% block content %}
{% endblock %}
</div>
<div>
<h1>Footer yx</h1>
</div>
</body>
//one_base.html 变化的部分
{% extends 'base.html' %}
{% block content %}
<h2>这是第一页</h2>
{% endblock %}
//two_base.html变化的部分
{% extends 'base.html' %}
{% block content %}
<h2>这是第二页</h2>
{% endblock%}
2-4 Flask的消息提示与异常处理
1)消息提示 - flash
代码:
from flask importFlask, flash,render_template
app = Flask(__name__)
app.secret_key = '123'
@app.route('/')
def hello_world():
flash("hello yx")
return render_template("index.html")
调用:<h2>{{ get_flashed_messages()[0] }}</h2>
2)抛出异常
//app.py
@app.errorhandler(404)
def not_found(e):
return render_template("404.html")
3)异常处理
//app.py
from flask import Flask, flash,render_template, abort
@app.route('/users/<user_id>')
def users(user_id):
if int(user_id) == 1:
return render_template("user.html")
else:
abort(404)

本文详细介绍了使用Python Web框架Flask进行开发的基础知识,包括Flask的特点、开发环境搭建、基本开发流程、模板使用方法以及如何处理异常。还介绍了与Flask开发紧密相关的前端技术和代码管理工具。
1199

被折叠的 条评论
为什么被折叠?



