zoukankan      html  css  js  c++  java
  • Flask(1)- 简介

    背景

    • 为啥要学,很久之前就学过点,没写文章
    • 最近因为要写机器人工具,其实就是简单的纯服务端工具
    • 反正 flask 也挺简单,一天快速过完
    • 概念会直接搬教程的,实操自己敲一遍再总结

    参考教程

    https://read.helloflask.com/c2-hello

    http://www.imooc.com/wiki/flasklesson

    Flask 简介

    • 轻:Flask 是一个轻量级的 Web 框架,使用 Python 语言编写
    • 易:较其他同类型框架更为灵活、轻便且容易上手
    • 快:小型团队在短时间内就可以完成功能丰富的中小型网站或 Web 服务的实现

    定制化

    • Flask 具有很强的定制性,用户可以根据自己的需求来添加相应的功能
    • 在保持核心功能简单的同时实现功能的丰富与扩展
    • 其强大的插件库可以让用户实现个性化的网站定制,开发出功能强大的网站

    Flask 的特点

    微框架

    Flask 是一个 Python 实现的 Web 开发框架,但是这个“微”并不代表着 Flask 功能比较简陋、有所欠缺

    微框架中的 “微” 意味着

    • Flask 旨在保持核心简单而易于扩展
    • Flask 不会替用户做出太多决策,比如使用何种数据库;
    • Flask 的选项(比如使用何种模板引擎) 通常有多个,用户很容易替换

    Flask 的扩展性

    • 默认情况下,Flask 不包含数据库抽象层、模板引擎、身份认证或其它任何已有多种库可以胜任的功能
    • 但是 Flask 支持用扩展来给应用添加这些功能,应用程序可以很方便的集成这些扩展
    • 众多的扩展提供了数据库集成、表单验证、上传处理、各种各样的开放认证技术等功能

    约定优于配置

    • 设计不好的框架通常需要多个配置文件,每一个都有许多设置选项,程序员需要记忆大量的参数配置
    • 但是 Flask 遵循约定优于配置(Convention Over Configuration),也称作按约定编程是一种软件设计范式
    • 目的在于减少软件开发人员所需要做出的决定的数量,从而将开发变得简单,而又不失去其中的灵活性,开发人员仅仅需要规定应用中不符合约定的部分
    • Flask 存在有众多的配置选项,但是在初始状况下,它们都有一个常用的默认值,并会遵循一些惯例
    • 例如:按照惯例,模板和静态文件分别存储在应用 Python 源代码树下的子目录 templates 和 static 里
    • 虽然这个配置可以修改,但通常不必这么做,尤其是在刚开始学习的时候

    Flask 与 Django 的比较

    两个框架的区别

    其实两者最主要区别在于:Django 功能大而全,Flask 只包含基本的功能

    • Django 采用一站式解决的思路,Django 集成有模板、表单、路由、认证、基本的数据库管理等内建功能,开发者不用在选择应用的基础设施上花费大量时间
    • Django 就像是一个装潢好的房子(如下图所示),它提供了各种家具,直接入住即可

    图片描述

    Flask 相对于 Django 而言是轻量级的 Web 框架

    • 和 Django 不同,Flask 只提供了最核心的功能,轻巧、简洁,通过定制第三方扩展来实现具体功能
    • 默认情况下,不包含数据库抽象、用户认证、表单验证、发送邮件等其它 Web 框架经常包含的功能
    • Flask 依赖用各种灵活的扩展(比如邮件 Flask Mail,用户认证 Flask Login,数据库 Flask SQLAlchemy)来给Web应用添加额外功能
    • Flask 就像是一个没有装潢的房子(如下图所示),用户需要自己选择各种家具才可以入住

    图片描述

    新手入门推荐

    • Flask 是一个轻量级的 Web 框架,只提供核心服务,较其他同类型框架更为轻便且容易上手,适用于小型团队在短时间内就可以完成功能丰富的中小型网站
    • 与之相比,Django 是一个重量级的 Web 框架,内置许多常用的扩展,这些功能是由官方和社区共同维护的,其健壮性高,有利于保障项目质量。
    • 推荐新手学习 Flask 框架,可以先从 Flask 开始,后使用 Django 重构,因为如果直接上 Django,作为新手,面对 Django 内置的各种繁杂功能产生很多疑惑
    • 就如同搭积木,如果直接给你一个搭好的模型,再拆开后(逆向过程),让你指出每块积木的作用,你可能会有疑惑。但是让你亲自一步步去搭好后(正向过程),再去拆解模型,你对每块积木的都会有不错的了解
    • Flask 开发就像是这个正向过程,自己一步一步去集成想要的扩展,完善网站,每一步都亲自动手做一遍,有助于理解 Web 开发的很多概念
    • Django 开发就像是逆向过程,Django 已经帮你集成了许多常用的扩展,用户要做的去学习这些扩展的使用

  • 相关阅读:
    2.完全背包问题
    1.01背包问题
    19.区间合并
    18.区间和
    16.数组元素的目标和
    15.最长连续不重复子序列
    14.差分矩阵
    1.注册七牛云账号
    1.1 linux查看系统基本参数常用命令
    图书管理增删改查&父子调用&前后端
  • 原文地址:https://www.cnblogs.com/poloyy/p/14992854.html
Copyright © 2011-2022 走看看