-
Flask 蓝图的基本使用
所属栏目:[教程] 日期:2023-06-30 热度:8618
在前面的例子中,所有的页面处理逻辑都是放在同一个文件中,随着业务代码的增加,将所有代码都放在单个程序文件中是非常不合适的。不仅会让阅读代码变得困难,而且会给后期维护带来麻烦。
Flask 中使用蓝图,提供[详细] -
Flask 标准类视图
所属栏目:[教程] 日期:2023-06-29 热度:190
在前面的小节讲解 Flask 路由时,采用的方式是:将 URL 路径和一个函数关联,当 Flask 框架接收到请求后,会根据请求的 URL 调用相应的函数进行处理。
本小节讲解设置路由的新方法:将 URL 路径和一个视图类关联,[详细] -
Flask 的 jinja2 模板
所属栏目:[教程] 日期:2023-06-29 热度:9590
还记的 “第一个 Flask 程序”这一小节中我们直接在 Python 源程序中直接返回一段 HTML 字符串,就可以在浏览器中看到效果,但是如果我们的 HTML 特别复杂呢?我们还能使用这样的形式吗?
答案是不行的[详细] -
Flask 的 request 对象
所属栏目:[教程] 日期:2023-06-29 热度:2170
浏览器访问服务端时,向服务端发送请求。Flask 程序使用 request 对象描述请求信息,本小节介绍 request 对象的概念,以及它的重要属性:form 和 args,并对属性的使用给出一个例子。
1. 简介
浏览器访问服务端,[详细] -
Flask 的 debug 模式
所属栏目:[教程] 日期:2023-06-29 热度:6179
使用 Flask 开发过程中存在两个常见的问题:
当 Flask 程序出错时,没有提示错误的详细信息;
修改 Flask 源代码后需要重启 Flask 程序。
这两个问题非常的影响开发效率,因此 Flask 引入了 debug 模式解决[详细] -
Flask 中的动态路由
所属栏目:[教程] 日期:2023-06-29 热度:9849
我们已经知道了一条固定的路径和一个处理函数相绑定,当访问这条路径时会触发相应的处理函数。路由中的路径是固定的,一条路径对应一个处理函数,无法处理复杂的情况。本小节介绍动态路由,路由中的路径是一个包含有[详细]
-
Flask 中的 HTTP 方法
所属栏目:[教程] 日期:2023-06-29 热度:9558
本小节讲解常用的 HTTP 方法。并通过一个个具体的例子,说明如何在 Flask 中使用不同的 HTTP 方法。
Tips:本节课所有代码已经上传到了 Github,可以点击这里进行下载。
1. HTTP 协议简介
1.1 概述
HTTP 协议[详细] -
第一个 Flask 应用程序
所属栏目:[教程] 日期:2023-06-29 热度:2388
前面的小节中我们已经讲解了 Web 框架,开发环境搭建以及特别重要的装饰器等等知识。那么从这节课开始我们就要正式开始 Flask 框架的学习了。
本节课我们会创建一个最简单的 Flask 程序,通过这个程序我们会了解到[详细] -
Python 的装饰器语法
所属栏目:[教程] 日期:2023-06-29 热度:1359
对装饰器这样的高阶函数的应用,Python 提供了特殊的装饰器语法,用法如下:
def decorate(input_function):
def output_function():
pass
return output_function
@decorate
def input_fun[详细] -
装饰器与高阶函数
所属栏目:[教程] 日期:2023-06-29 热度:6525
我们本节课的重点装饰器本质上其实就是一个特殊的高阶函数,那么它特殊在哪里呢?
通过上面的两个例子我们可以了解到高阶函数有两个特性:
输入参数是函数;
输出返回值是函数。
而装饰器(decorate)则是两[详细] -
Flask 中的装饰器
所属栏目:[教程] 日期:2023-06-29 热度:7553
总体来说,Python 的语法比较简单,是一门易学的编程语言。但是,Python 的装饰器语法是一个例外,装饰器是 Python 语言的高级语法,牵涉到高阶函数等内容,对初学者来说较难理解。
看到这里你可能会问:咱们这门[详细] -
虚拟开发环境搭建
所属栏目:[教程] 日期:2023-06-28 热度:5497
本节讲解了什么是虚拟开发环境以及虚拟开发环境的功能,它用于解决版本依赖的问题,讲解了如何使用 virtualenv 命令创建、激活一个虚拟开发环境。
1. 什么是虚拟开发环境
虚拟开发环境是一个隔离的运行环境,每个[详细] -
Flask 简介
所属栏目:[教程] 日期:2023-06-28 热度:3035
Python 中存在众多的 Web 开发框架:Flask、Django、Tornado、Webpy、Web2py、Bottle、Pyramid、Zope2 等。近几年较为流行的,大概也就是 Flask 和 Django 了。我们以这些 Web 开发框架作为关键字,在编程之家网中搜[详细]
-
Flask 是什么?
所属栏目:[教程] 日期:2023-06-28 热度:6568
Flask是一个轻量级的可定制框架,使用Python语言编写,较其他同类型框架更为灵活、轻便、安全且容易上手。它可以很好地结合MVC模式进行开发,开发人员分工合作,小型团队在短时间内就可以完成功能丰富的中小型网站或[详细]
-
贪心算法介绍
所属栏目:[教程] 日期:2023-06-28 热度:4852
接下来的三个小节内容我们将介绍基础算法中的一个经典算法:贪心算法。贪心算法比较直观,有时候能很好的解决问题,但有时候求出的结果非最优解。所以在使用贪心算法时一定要对其应用场景以及相应的问题掌握清楚,方[详细]
-
递归算法介绍
所属栏目:[教程] 日期:2023-06-28 热度:2212
本节将主要介绍基础算法中最为常见和最为简单的算法:递归算法。
1. 递归算法原理详解
递归算法,通常是把一个大型复杂的问题,一次次通过递归调用而层层转化为一个与原问题相似的规模较小的问题来求解,基本思想[详细] -
希尔排序算法思路
所属栏目:[教程] 日期:2023-06-28 热度:5815
今天我们来介绍一个比经典的排序算法:希尔排序。该算法时以它的发明者 Donald Shell 名字命名的,改进自插入排序算法,实现简单,在中等规模的数据上性能表现不错。我们同样从算法的思路、Python 实现以及复杂度分析[详细]
-
选择排序算法原理
所属栏目:[教程] 日期:2023-06-28 热度:8277
今天我们来聊一下同样比较基础的排序算法-选择排序。选择排序是一种非常直观的排序算法。
1. 选择排序算法原理
选择排序的思路是最容易想到的:首先遍历一次列表,找到列表中的最小值,交换到第一个位置; 接下[详细] -
插入排序算法原理
所属栏目:[教程] 日期:2023-06-28 热度:4257
本节我们来聊一下基础排序中的插入排序算法。
1. 插入排序算法原理
插入排序的基本思想是:将整个数组 nums 分为有序和无序的两个部分。前者在左边,后者在右边。最开始有序的部分只有第一个元素,其余都属于无序[详细] -
冒泡排序算法原理
所属栏目:[教程] 日期:2023-06-28 热度:6626
今天我们来详解冒泡排序算法,从原理到实现,然后再到算法分析三个部分完成对这个算法的剖析。
冒泡排序算法原理
所有的算法介绍都始于排序算法,所有的排序算法都会始于冒泡排序。排序问题是一个非常古老的问[详细] -
为什么要学习算法
所属栏目:[教程] 日期:2023-06-28 热度:7222
说实话,这个问题确实比较难以回答,我们先来看下百度百科对算法的定义:
算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。
1[详细] -
什么是Python 闭包
所属栏目:[教程] 日期:2023-06-27 热度:2111
闭包是较难理解的概念,Python 初学者可以暂时跳过此节。学习此节时需要理解 “函数是第一类对象” 的概念,在词条 “Python 的 lambda 表达式” 中详细介绍了这一概念。
本节首先讲解理解闭[详细] -
匿名函数 lambda
所属栏目:[教程] 日期:2023-06-27 热度:3593
在传入函数时,有些时候,不需要显式地定义函数,直接传入匿名函数更方便。Python 提供了 lambda 表达式对匿名函数提供了有限支持,lambda 表达式的语法如下:
lambda args: expression
使用 lambda 表达式定义一[详细] -
将函数作为第一类对象的意义
所属栏目:[教程] 日期:2023-06-27 热度:2803
将函数作为第一类对象,是一种重要的抽象机制,极大的提升了程序的灵活性。通过一个例子进行说明。假设需要完成这样的任务:
存在一个列表 [1, -1, 2, -2, 3, -3]
打印输出列表中的正数
打印输出列表中的负[详细] -
什么是第一类对象
所属栏目:[教程] 日期:2023-06-27 热度:1913
第一类对象其实是指函数作为一个对象,与其它对象具有相同的地位。具体来说,数值可以被赋值给变量、作为参数传递给函数、作为返回值,因为函数和数值具有相同的地位,所以函数也可以被赋值给变量、作为参数传递给函[详细]