Category : 教程系列

介绍 如果您已经学习了Django 开发系列,那么您已经启动了一个 Django 应用程序,将您的应用程序连接到 MySQL,并为博客 Web 应用程序中的Posts和Comments数据创建了数据库模型。 在本教程中,我们将连接并启用Django 管理站点,以便您可以管理您的博客网站。Django 管理站点预先构建了一个用户界面,旨在允许您和其他受信任的个人管理网站的内容。 值得注意的是,Django 的官方文档指出,虽然这对于组织内部使用非常理想,但不建议围绕自动生成的 Django 管理界面构建 Web 应用程序。如果您发现您的界面需要更加以流程为中心,或者证明要抽象出数据库表和字段的实现细节,那么您最好为管理端编写自己的视图。 先决条件 本教程是Django 开发系列的一部分,是该系列的延续。 如果您还没有关注本系列,我们将做出以下假设: 您已安装 Django 版本 3 或更高版本。 您已将 Django 应用程序连接到数据库。我们正在使用 MySQL,您可以按照 Django 系列的第二部分“如何创建 Django 应用程序并将其连接到数据库”来实现这种连接。 您正在使用基于 Unix 的操作系统,最好是 Ubuntu 20.04 云服务器,因为这是我们测试过的系统。如果您想在类似环境中设置 Django,请参阅我们的教程“如何在 Ubuntu 20.04 上安装 Django 并设置开发环境”。 由于本教程主要涉及 Django 管理界面,因此即使您的设置有所不同,您也可以继续学习。 第 1 步 – 启用管理员 每当我们开始在 ..

Read more

作者选择Internet Archive接收捐赠,作为Write for DOnations计划的一部分。 介绍 WordPress的是一种流行的CMS(ç ontent中号anagement小号ystem)。它允许您在可视化编辑器中编辑帖子,而不是使用原始 HTML 对网站的页面进行手动编码,并提供其他功能,例如协作编辑和修订历史记录。 传统上,WordPress 作为网站的后端和前端。帖子在管理编辑器中进行编辑,当访问者通过PHP主题访问它时,后端会动态生成站点的每个公共页面。 WordPress 中的一个新范例是仅将其用于您网站的内容部分(也称为无头运行),并使用Gatsby静态生成前端。通过利用两者并将内容与用户界面 (UI) 分离,您可以保留 WordPress 的内容编辑器和协作功能,同时还可以享受 Gatsby 更快的加载时间和基于 React 的 UI 生态系统。 在本教程中,您将配置 WordPress 以与 Gatsby 对话,基于入门模板设置一个新的 Gatsby 项目,在 Gatsby 配置中定义与 WordPress 的连接,并将所有这些组合在一起以根据实时发布的帖子静态生成一些页面在您的 WordPress 安装中。 先决条件 在您开始本指南之前,您需要准备以下几样东西: 具有足够资源来支持构建和服务您的站点的环境。如果您使用同一台服务器来托管 WordPress 和构建 Gatsby 站点,建议的最小 RAM 量为 2GB。如果您想使用 DigitalOcean Droplet,请查看DigitalOcean 控制面板文章中的如何创建 Droplet。 可以从 Gatsby 运行的位置访问的工作WordPress安装。如果您是 WordPress 的新手,您可能想先从什么是 ..

Read more

该系列的一部分: 如何使用 CSS 构建网站 本教程是使用 CSS创建和自定义此网站的系列的一部分,CSS 是一种用于控制网站呈现的样式表语言。您可以按照整个系列重新创建演示网站并熟悉 CSS 或将此处描述的方法用于其他 CSS 网站项目。 在继续之前,我们建议您了解一些 HTML 知识,HTML 是用于在 Web 浏览器中显示文档的标准标记语言。如果您不熟悉 HTML,可以在开始本系列之前先阅读我们如何使用 HTML 构建网站系列的前十个教程。 介绍 在本教程中,您将创建 CSS伪类并了解如何以及为何使用它们。您还将练习使用:hover伪类,该类允许我们在用户光标悬停在元素上时更改元素的样式。 伪类是仅在特定状态下激活的 CSS 类。例如,:hover当用户的光标悬停在元素上时,伪类可用于更改图像或文本元素的外观。伪类:visited通常用于在用户单击链接后更改链接的颜色。 伪类是在 CSS 中通过将 a:和伪类的名称附加到标签、类或 ID 选择器来声明的。然后,这个伪类将自动应用于任何分配了伪类的标签、类或 ID 的 HTML 内容。您无需向 HTML 元素添加任何额外代码即可使伪类工作。 先决条件 要遵循本教程,请确保您已按照本系列如何设置 CSS 和 HTML 练习项目中的上一个教程中的说明设置必要的文件和文件夹。 用 CSS 创建一个伪类 现在让我们尝试一个实际练习来探索伪类的工作原理。首先,确保您已按照本系列如何设置 CSS 和 HTML 练习项目中的前一个教程中的说明设置必要的文件和文件夹。 擦除styles.css文件中的所有内容(如果您添加了之前教程中的内容)并将以下伪类添加到您的文档中: 样式文件 img:hover ..

Read more

MVC,即模型-视图-控制器,是一种软件设计模式,它将应用程序逻辑分为三个相互关联的组件——模型、视图和控制器。 MVC 设计模式通常用于根据其在应用程序中的用途来组织代码。应用程序模型部分的代码表示和存储数据和相关逻辑。代码的视图部分用于格式化数据并将其呈现给用户。最后,MVC 应用程序中的控制器通过处理应用程序中的用户输入和操作来链接模型和视图。 JavaScript、Python、Ruby等编程语言通常具有用于应用程序开发的流行 MVC 框架,每个框架对 MVC 设计模式的解释各不相同。 要了解有关 MVC 设计模式的更多信息,请参阅我们的教程如何使用 React 前端设置 Ruby on Rails 项目。将指导您使用流行的 Rails 框架创建 MVC 应�..

Read more

介绍 Webmin是一个现代 Web 控制面板,允许您通过基于浏览器的界面管理 Linux 服务器。使用 Webmin,您可以即时管理用户帐户、配置 DNS 设置以及更改常用包的设置。 在本教程中,您将在服务器上安装和配置 Webmin,并使用来自Let’s Encrypt的有效证书保护对界面的访问。然后,您将使用 Webmin 添加新用户帐户,并从仪表板更新服务器上的所有程序包。 先决条件 要完成本教程,您需要: 一台 Ubuntu 20.04 服务器。该服务器应该有一个具有 sudo 权限的非 root 用户并配置了 UFW 防火墙。按照我们的Ubuntu 20.04 初始服务器设置指南进行设置。 按照我们关于如何在 Ubuntu 20.04 上安装 Apache Web 服务器的教程安装 Apache。当您遵循此先决条件指南时,请务必配置虚拟主机。 一个完全限定的域名 (FQDN),带有指向服务器 IP 地址的DNS A记录。要进行配置,请按照有关 DigitalOcean 上 DNS 托管的这些说明进行操作。 第 1 步 – 安装 Webmin 首先,如果您最近没有更新服务器的包索引: sudo apt update ..

Read more

介绍 我仍然记得最终能够在 node 中编写更大应用程序的后端部分的满足感,我相信你们中的许多人也这样做了。 然后?我们需要确保我们的应用程序按照我们期望的方式运行,强烈建议的方法之一是软件测试。每当向系统添加新功能时,软件测试都非常有用:已经设置了可以使用单个命令运行的测试环境有助于确定新功能是否引入了新错误。 过去,我们致力于使用 JSON Web Tokens 和 Passport进行Node API 身份验证。 在本教程中,我们将使用 Node.js 编写一个简单的 RESTful API,并使用Mocha和Chai编写针对它的测试。我们将在书店上测试 CRUD 操作。 像往常一样,您可以在整个教程中逐步构建应用程序,也可以直接在github上获取它。 Mocha:测试环境 Mocha是 Node.js 的 javascript 框架,它允许异步测试。假设它提供了一个环境,我们可以在其中使用我们最喜欢的断言库来测试代码。 . Mocha 有很多很棒的功能,网站显示了一个很长的列表,但这里是我最喜欢的: 简单的异步支持,包括承诺。 异步测试超时支持。 before, after, before each, after each hooks(对于清理每次测试的环境非常有用!)。 使用任何你想要的断言库,我们教程中的 Chai。 Chai:断言库 因此,使用 Mocha 我们实际上拥有进行测试的环境,但是例如,我们如何测试 HTTP 调用?此外,在给定定义的输入的情况下,我们如何测试 GET 请求是否实际返回了我们期望的 JSON 文件?我们需要一个断言库,这就是为什么 mocha 是不够的。 所以这里是Chai,当前教程的断言库: Chai ..

Read more

介绍 注意:请 访问此配套教程,详细了解如何使用grep正则表达式在 Linux 中搜索文本模式。 作为系统管理员、开发人员、QA 工程师、支持工程师等,需要从文件中找到特定模式,例如属于特定范围或时间戳范围或域或子域名组的一组 IP 地址。人们可能还需要查找以特定方式拼写的单词或查找文件中可能存在的拼写错误。这就是正则表达式的用武之地。 正则表达式是匹配模式(或有时不匹配模式)的模板。它们提供了一种描述和解析文本的方法。本教程将深入了解正则表达式,而不涉及任何语言的特殊性。我们将简单地使用 egrep 来解释这些概念。 常用表达 正则表达式由两种类型的字符组成: 常规文字字符和 元字符 这些元字符赋予正则表达式权力。 考虑以下 country.txt 文件,其中第一列是国家名称,第二列是国家人口,第三列是大陆。 $ cat country.txt India,1014003817,Asia Italy,57634327,Europe Yemen,1184300,Asia Argentina,36955182,Latin America Brazil,172860370,Latin America Cameroon,15421937,Africa Japan,126549976,Asia 锚元字符 我们将讨论的第一组“元字符”是^和$。^和$ 分别匹配模式的开始和结束,称为锚元字符。 要找出国名以 I 开头的所有国家的名称,我们使用表达式: $ egrep ‘^I’ country.txt India,1014003817,Asia Italy,57634327,Europe 或者要找出大陆名称以 e 结尾的所有国家/地区,我们执行以下操作: $ egrep ‘e$’ country.txt Italy,57634327,Europe 下一个元字符是点 (.),它匹配任何一个字符。要匹配国家名称正好为 5 ..

Read more

该系列的一部分: MongoDB 安全性:确保数据安全的最佳实践 MongoDB,也称为Mongo,是许多现代 Web 应用程序中使用的文档数据库。与任何数据库管理系统一样,负责管理 Mongo 数据库的人员必须遵守推荐的安全最佳实践,以防止数据在发生灾难时丢失并防止其落入恶意行为者之手。 本系列概念文章对 MongoDB 的内置安全功能进行了高级概述,同时还重点介绍了一些通用的数据库安全最佳实践。 加密是将一条信息从明文(信息的原始形式)转换为密文的过程,密文是一种不可读的形式,只能由具有正确密码来解密的人或计算机读取。如果恶意行为者要拦截一段加密数据,他们将无法读取它,直到他们能够解密它。 您可以通过将 MongoDB 实例配置为需要使用传输层安全性(也称为TLS)的连接来加密您的 MongoDB 实例与任何需要访问它的客户端或应用程序之间的通信。与它的前身安全套接字层(SSL) 一样,TLS 是一种加密协议,它使用基于证书的身份验证对通过网络传输的数据进行加密。 请注意,TLS 仅在数据通过网络移动时对其进行加密,也称为传输中的数据。即使您已将 Mongo 配置为要求使用 TLS 建立连接,存储在数据库服务器上的静态数据(称为data at rest)仍将是未加密的。使用 MongoDB 的免费社区版无法加密静态数据,但使用 Mongo 基于付费订阅的企业版可以。 但是,即使启用了静态加密和传输中加密,您的敏感数据仍有可能被未经批准的用户访问。例如,考虑一个场景,您部署了一个分片 NoSQL 文档数据库来存储您开发的冰淇淋交付应用程序的数据。数据库管理系统允许您加密静态数据(您启用该功能),并且您还可以将其配置为要求在分片以及任何客户端之间进行加密的 TLS 连接。 在此示例情况下,当客户下订单时,他们被要求提交一些敏感信息,例如他们的家庭住址或信用卡号。然后应用程序将此信息写入数据库的文档中,如下所示: { “name” : “Sammy Shark”, “address” : { “street” : “602 Surf Ave”, “city” : “Brooklyn”, “state” : ..

Read more

数据库是一组结构化信息,其组织方式可以通过计算机程序轻松访问、管理和更新。 复杂的数据库通常使用更正式的结构和设计模式,通常由数据库管理系统 (DBMS) 定义。有许多不同类型的常见数据库管理系统,有些使用关系模型和NoSQL等设计模式,以及SQL等查询语言。 要了解更多关于数据库和数据库管理的信息,请访问我们的综合对教育资源列表�..

Read more

介绍 在构建现代无状态应用程序时,容器化应用程序组件是在分布式平台上部署和扩展的第一步。如果您在开发中使用了Docker Compose,您将通过以下方式对应用程序进行现代化和容器化: 从代码中提取必要的配置信息。 卸载应用程序的状态。 打包您的应用程序以供重复使用。 您还将编写服务定义,指定容器映像的运行方式。 要在Kubernetes等分布式平台上运行您的服务,您需要将 Compose 服务定义转换为 Kubernetes 对象。这将使您能够灵活地扩展您的应用程序。一个工具,可以加快翻译流程Kubernetes是kompose,一个转换工具,可以帮助开发人员撰写移动工作流程,以协作型集装箱像Kubernetes或OpenShift。 在本教程中,您将使用 kompose将 Compose 服务转换为 Kubernetes对象。您将使用 kompose 提供的对象定义作为起点并进行调整以确保您的设置以 Kubernetes 期望的方式使用Secrets、Services和PersistentVolumeClaims。在本教程结束时,您将拥有一个单实例Rails应用程序,其中包含一个在 Kubernetes 集群上运行的PostgreSQL数据库。此设置将反映使用 Docker Compose 容器化用于开发的 Ruby on Rails 应用程序中描述的代码的功能 并且将是构建可根据您的需求扩展的生产就绪解决方案的良好起点。 先决条件 启用了基于角色的访问控制 (RBAC) 的 Kubernetes 1.19+ 集群。此设置将使用DigitalOcean Kubernetes 集群,但您可以使用另一种方法自由创建集群。 kubectl安装在本地机器或开发服务器上并配置为连接到集群的命令行工具。您可以kubectl在官方文档中阅读有关安装的更多信息。 Docker安装在您的本地机器或开发服务器上。如果您使用的是 Ubuntu 20.04,请按照如何在 Ubuntu 20.04 上安装和使用 Docker 的步骤 1 和 2 进行操作;否则,请按照官方文档获取有关在其他操作系统上安装的信息。确保将您的非 root 用户添加到docker组中,如链接教程的步骤 ..

Read more