Python全栈7 - Flask实战

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值