使用JSON Schema进行参数验证

什么是 JSON Schema JSON Schema 是基于 JSON 语法,用来描述 JSON 数据格式的一种规范。可以数据校验、生成接口文档,生成模拟数据等多种用途。 本质上,JSON 是由以下几种基本的数据结构组成的: 对象 objects 数组 array 数字 number 字符串 string 布尔值 boolean null JSON Schema...

Let's Encrypt:免费生成HTTPS证书

简介 Let’s Encrypt 是一个免费,自动化和开放的证书颁发机构,由非营利性机构互联网安全研究组(ISRG)驱动。该机构可以为域名颁发免费的 HTTPS 证书,每次证书的有效期为 90 天。 其证书颁发基于 ACME 协议,其中默认使用 ACME v1 协议,泛域名证书需要使用 ACME v2 协议。通过在 Web 服务器上使用支持 ACME 协议的客户端来申请证书。官方推荐使用...

双因素认证2FA

2FA 概念 认证(authentication)即是确认用户身份,密码是最常见的认证方法。但是密码容易泄露和冒充,因此越来越多的网站开始采用双因素认证(Two-factor authentication,简称 2FA)。即通过使用除密码外的其他因素,来确认用户身份,增加冒充的难度。 常用的认证因素可以分为以下几类: 秘密信息:只有该用户知道、其他人不知道的某种信息,比如密码。...

使用Flask-RESTful构建RESTful API

Flask-RESTful 是一个 Flask 扩展,用于快速构建 REST API。本文基于 Flask-RESTful 0.3.6 版本。 安装 安装: pipenv install flask-restful Minimal App: from flask import Flask from flask_restful import Resource, Api app =...

Flask-SQLAlchemy联合查询

一对多关系联合查询 模型定义如下,Category 和 Post 是一对多的关系: class Category(db.Model): __tablename__ = "category" id = db.Column(db.Integer, primary_key=True, autoincrement=True) posts = db.relationship("Post",...

JSON Web Token入门

简介 JSON Web Token(JWT)是是目前最流行的跨域认证(Authentication)解决方案。 基于 session 的认证方案,在服务器集群或跨域的多系统中,难以实现一次登录多端共享。此时,有两种方案。 一种是,将 session 数据持久化,所有子系统都向持久层请求数据。这种方案优点是架构清晰,缺点是工程量大,另外如果持久层挂机,所有系统都无法登录;...

Nginx配置

Nginx 的配置文件是一个以块(block)的形式组织一组指令的文本文件。 配置文件路径: Ubuntu apt 安装:/etc/nginx/; MacOS brew 安装:/usr/local/etc/nginx/; include 在配置文件中,使用 include 指令来执行对一个特定文件的包含,即将特定文件内容插入到配置文件 include 指令的位置。例如 include...

Flask项目的目录结构

Flask 是一个非常灵活的 Web 开发框架,因而其目录结构可以有多种形式。 单独实例化扩展对象 在相关文件中单独实例化扩展对象,而不是将扩展对象放入__init__.py中。这是 Flask 官方文档推荐的方式。 引用原作者的一句话: Don’t backward import from root __init__.py. 示例 举个例子,我们使用 Flask-SQLAlchemy...

CSS入门教程-MDN

什么是CSS? Cascading Style Sheets (CSS) 是一门指定文档该如何呈现给用户的语言。 文档是信息的集合,它使用一门标记语言作为结构。文档不等同于文件,一个文档可能由多个文件组成。 CSS 并非仅仅用于浏览器,也不仅限于视觉展现。按照 CSS 的正式术语来讲,将文档呈现给用户的程序称为用户代理(UA)。浏览器只是用户代理的其中之一。 浏览器如何展现文档?...

HTML和CSS基础教程-慕课网

HTML <em>:表示强调,斜体表示; <strong>:表示更强烈的强调,粗体表示; <span>:用于给文本设置单独的样式,没有语义; <q>: 引用文本,会自动添加双引号,不需要手动添加。cite属性标记引用内容的来源或者解释; <blockquote>:对长文本的引用,浏览器对该标签的解析是缩进样式,不会自动加双引号; <br />:折行,一般写带斜线的这种格式比较规范;...