python-flask复习(一)

一、Python 现阶段三大主流Web框架 Django、Tornado、Flask 对比

Django 主要特点是大而全,集成了很多组件(例如Models、Admin、Form等等), 不管你用得到用不到,反正它全都有,属于全能型框架,通常用于大型Web应用,由于内置组件足够强大所以使用Django开发可以一气呵成,优点是大而全,缺点也就暴露出来了,这么多的资源一次性全部加载,肯定会造成一部分的资源浪费;

Tornado 主要特点是原生异步非阻塞,在IO密集型应用和多任务处理上占据绝对性的优势,属于专注型框架,通常用于API后端应用,游戏服务后台,其内部实现的异步非阻塞真是稳得一批,优点是异步,缺点是干净,连个Session都不支持;

Flask 主要特点小而轻,原生组件几乎为0,三方提供的组件(请参考Django)非常全面,属于短小精悍型框架,通常应用于小型应用和快速构建应用,其强大的三方库,足以支撑一个大型的Web应用,优点是精悍简单,缺点是稳定性较差,主要因为其组件都是第三方提供,要等第三方收到更新版本通知后才能更新,否则会出现一些兼容问题;

二、初识flask

1、安装flask

pip install flask

2、六行代码写出一个页面

# -*- coding: UTF-8 -*-

from flask import Flask       # 导入Flask类

app = Flask(__name__)        # 实例化Flask对象app

@app.route("/")              # app中的route装饰器
def index():               # 视图函数
    return "hello world"

app.run()             # 启动Flask web服务

2、Flask中的Response"三剑客"

我们知道django中的Response有3种形式(HttpResponse、redirect、render),对比django,来看一下flask中有哪些返回形式。

1)返回HttpResponse对象

  @app.route("/home")
  def home():
    return "hello world"           # 相当于django中return HttpResponse("")

2)重定向(redirect)

from flask import redirect          # 导入flask中的redirect

  @app.route("/home")
  def home():
    return redirect("/login")         # 重定向至"/login"路径

当访问"/home"这个路径的时候,视图函数home会重定向到路径"/login" 并会触发"/login"对应的视图函数。

3)返回模板页面(render_template)

 from flask import render_template        # 导入flask中的render_template

    @app.route("/home")
    def home():
        return render_template("home.html")        # 渲染模板home.html并返回

Flask中的render_template相当于django中的render

注意:如果要使用render_template 返回渲染的模板,请在项目的主目录中加入一个目录 templates,否则会遇到jinja2的异常:
    
3、flask中的"小儿子"

1)返回标准的json字符串

from flask import jsonify

    @app.route("/json")
    def jsons():
        d = {
   "name":"jinjiaodawangba"}
        return jsonify(d)

返回json字符串,并且会在响应头中加Content-Type:application/json,即告诉浏览器数据是json字符串,浏览器收到后会自动进行反序列化而使用json.dumps()则不会加此响应头

2)打开文件并返回文件内容(自动识别文件格式####重要###

from flask importsend_file

  @app.route("/file")
  def file():
    return send_file("01.mp4")

自动识别文件类型**,即在返回文件内容时加一个响应头Content-Type:文件类型。**

4、Flask中的request(公共变量)

每个框架中都有处理请求的机制,但是每个框架的处理方式和机制是不同的,为了了解Flask的request中都有什么,我们先来写一个基于html+flask前后端交互的示例。

html页面代码如下:

<body>
  <form action="/login"method="post">
    用户名:<input type="text"name="username">
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Python是一门广泛应用于数据分析、Web开发、人工智能等领域的高级编程语言,对于学期末复习,以下是一些关键点和资源建议: 1. **基础知识回顾**: - 数据类型和操作:如字符串、列表、字典、元组、集合、布尔类型等。 - 控制结构:if-else、for循环、while循环、break和continue语句。 - 函数和模块:定义函数、导入和导出模块、参数传递方式(位置参数、关键字参数和默认参数)。 - 面向对象编程(OOP):类、对象、属性、方法、继承和多态。 2. **核心库**: - Numpy:用于数值计算的基础。 - Pandas:数据处理和分析工具。 - Matplotlib和Seaborn:数据可视化。 - Dictionaries and JSON:文件读写、数据交换。 - Flask或Django:Web开发框架。 3. **高级主题**: - 高级函数和装饰器。 - 错误处理和异常管理。 - 迭代器和生成器。 - 正则表达式和BeautifulSoup(抓取网页内容)。 - 异步编程(如asyncio)和并发处理(如多线程和多进程)。 4. **项目实践**: - 选择一个小型项目,例如爬虫、数据分析报告或简单的Web应用,来实践所学知识。 5. **在线资源**: - 官方文档:https://docs.python.org/3/ - Python教程:https://realpython.com/ (可选中文版) - LeetCode、HackerRank上的Python题目:提升编码能力。 - Stack Overflow:查询和学习问题解答。 6. **模拟考试**: - 做一些Python期末考试样题或模拟测试,熟悉考试形式。 **相关问题--:** 1. 学期末复习应重点关注哪些Python进阶特性? 2.
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值