Flask 使用 SQLite 数据库
SQLite 是一个小型的轻量数据库,特别适合个人学习使用。因为 SQLite 不需要额外的数据库服务器,同时它也是内嵌在 Python 中的。缺点就是如果有大量的写请求过来,它是串行处理的,速度很慢。
SQLite 是一个小型的轻量数据库,特别适合个人学习使用。因为 SQLite 不需要额外的数据库服务器,同时它也是内嵌在 Python 中的。缺点就是如果有大量的写请求过来,它是串行处理的,速度很慢。
本书作者:测试开发刚哥,文章版权归个人所有,未经授权请勿转载。 对象 Object 对象有 2 个特征:状态 state 和行为 behavior。我们可以用真实世界的对象来做类比,这样有助于理解面向对象编程,比如狗的状态(名字、颜色、品种)和行为(叫、抓、摇尾巴),自行车的状态(当前档位、当前踏板节奏、当前速度)和行为(切换档位、切换踏板节奏、踩刹车)。 软件对象也是由状态和行为组成: 状态,在软件对象中,叫做字段 fields,或变量 variables。 行为,在软件对象中,叫做方法 methods,或函数 functions。 所谓的数据封装 data encapsulation,就是字段只在内部,不对外暴露,仅由方法进行操作,对象与对象之间通过方法来相互访问。 Java 是纯粹的面向对象编程语言。 类 Class 类,可以视为对象的模版,基于类来创造出同一类对象。 比如自行车的类: class Bicycle { int cadence = 0; int speed = 0; int gear = 1; void changeCadence(int newValue) { cadence = newValue; } void changeGear(int newValue) { gear = newValue; } void speedUp(int increment) { speed = speed + increment; } void applyBrakes(int decrement) { speed = speed - decrement; } void printStates() { System.out.println("cadence:" + cadence + " speed:" + speed + " gear:" + gear); } } 类也是有 2 个特征:字段和方法。比如 Bicycle 类有字段 cadence、speed、gear 和方法 changeCadence()、changeGear()、speedUp()等。 ...
本书作者:测试开发刚哥,文章版权归个人所有,未经授权请勿转载。 请求分发 Servlet 的 RequestDispatcher 接口定义: package javax.servlet; import java.io.IOException; public interface RequestDispatcher { String FORWARD_REQUEST_URI = "javax.servlet.forward.request_uri"; String FORWARD_CONTEXT_PATH = "javax.servlet.forward.context_path"; String FORWARD_PATH_INFO = "javax.servlet.forward.path_info"; String FORWARD_SERVLET_PATH = "javax.servlet.forward.servlet_path"; String FORWARD_QUERY_STRING = "javax.servlet.forward.query_string"; String INCLUDE_REQUEST_URI = "javax.servlet.include.request_uri"; String INCLUDE_CONTEXT_PATH = "javax.servlet.include.context_path"; String INCLUDE_PATH_INFO = "javax.servlet.include.path_info"; String INCLUDE_SERVLET_PATH = "javax.servlet.include.servlet_path"; String INCLUDE_QUERY_STRING = "javax.servlet.include.query_string"; String ERROR_EXCEPTION = "javax.servlet.error.exception"; String ERROR_EXCEPTION_TYPE = "javax.servlet.error.exception_type"; String ERROR_MESSAGE = "javax.servlet.error.message"; String ERROR_REQUEST_URI = "javax.servlet.error.request_uri"; String ERROR_SERVLET_NAME = "javax.servlet.error.servlet_name"; String ERROR_STATUS_CODE = "javax.servlet.error.status_code"; void forward(ServletRequest var1, ServletResponse var2) throws ServletException, IOException; void include(ServletRequest var1, ServletResponse var2) throws ServletException, IOException; } 它有 2 个方法,forward 和 include: ...
本书作者:测试开发刚哥,文章版权归个人所有,未经授权请勿转载。 Build Systems 选择 Maven or Gradle,而不要 Ant(not particularly well supported) In practice, you do not need to provide a version for any of these dependencies (spring-boot-dependencies) in your build configuration, as Spring Boot manages that for you. When you upgrade Spring Boot itself, these dependencies are upgraded as well in a consistent way. Each release of Spring Boot is associated with a base version of the Spring Framework. Starters are a set of convenient dependency descriptors that you can include in your application. ...
Python 是强类型语言,在学习 Python 时,有必要了解 Python 有哪些基本数据类型,一共 6 个:Number(数字)、String(字符串)、List(列表)、Tuple(元组)、Set(集合)、Dictionary(字典)。数据类型的知识是非常多的,一篇文章讲不明白,本文仍然属于入门系列,内容主要是基础简介。
字符集其实是个很简单的东西,但很多人当时看懂了,过了就忘了。
Django 已经提供了开箱即用的认证系统,但是可能并不满足我们的个性化需求。自定义认证系统需要知道哪些地方可以扩展,哪些地方可以替换。本文就来介绍自定义 Django 认证系统的相关技术细节。
在使用django-admin startproject创建项目后,Django 就默认安装了一个采用 session 实现的认证系统。这是 Django 相比于其他框架的一大特点:自带认证系统,开箱即用。有人说它方便,有人说它鸡肋,但它作为 Django 的重要组成部分,学习它有助于我们理解 Django 框架的核心技术。
typing 是 Python 标准库,用来做类型提示。FastAPI 使用 typing 做了:
一个 Flask 应用(Flask Application)是 Flask 类(Flask Class)的实例。在前面的文章中,都是通过定义全局 Flask 实例的方式来编写的 Flask 应用代码,比如: