作者选择了COVID-19 救济基金来接受捐赠,作为Write for DOnations计划的一部分。 介绍 Flask是一个使用 Python 构建 Web 应用程序的框架,SQLite是一个数据库引擎,您可以与 Python 一起使用它来存储应用程序数据。 在本教程中,您将构建一个URL缩短服务,即采取任何URL,并生成一个短,更可读的版本像一个服务bit.ly。 Hashids是一个从整数生成一个简短的唯一 ID 的库。例如,您可以使用它来将像这样的数字转换为12像1XcId. 您将使用 Hashids 为 URL ID 生成唯一的字符串。 您可以使用唯一字符串为视频共享站点上的视频生成 ID,或者为上传图像的服务上的图像生成 ID。这个唯一的字符串为您提供了不可预测的 ID;因此,如果用户可以访问 处的图像your_domain/image/J32Fr,则他们无法预测其他图像的位置。如果您在 URL 缩短器中使用整数 ID,这是不可能的——例如,your_domain/image/33允许用户预测其他图像的位置。不可预测的 URL 为您的服务增加了一种隐私形式,因为它们会阻止用户计算由其他用户缩短的不同 URL。 您将使用 Flask、SQLite 和Hashids库来构建您的 URL 缩短器。您的应用程序将允许用户输入一个 URL 并生成一个较短的版本,此外还有一个统计页面,用户可以在其中查看 URL 被点击的次数。您将使用Bootstrap工具包来设计您的应用程序。 先决条件 本地 Python 3 编程环境,请遵循如何为 Python 3系列安装和设置本地编程环境中的分发教程。在本教程中,我们将调用我们的项目目录flask_shortener。 了解基本的 Flask 概念,例如创建路由、呈现 HTML 模板和连接到 SQLite ..
Category : 教程系列
操作系统是处理计算机内存、软件和硬件资源以及进程的系统软件,同时为计算机程序提供通用服务和编程接口。流行的操作系统示例包括 WindowsOS、MacOS 和 Linux。 除了固件之外,所有计算机程序都需要操作系统才能运行,并且它们通常预装在新计算机上。每个操作系统都有不同的用户界面或UI,允许用户与他们的计算机进行交互。 要了解更多信息,这里有一些特定于操作系统的资源,包括Windows、FreeBSD和Linux资源的综�..
作为Write for DOnations计划的一部分,作者选择了免费和开源基金来接受捐赠。 介绍 随着开发人员工具迁移到云端,云 IDE(集成开发环境)平台的创建和采用正在增长。云 IDE 允许开发团队之间实时协作,在统一的开发环境中工作,最大限度地减少不兼容性并提高生产力。可以通过 Web 浏览器访问,各种类型的现代设备都可以使用云 IDE。云 IDE 的另一个优势是可以利用集群的能力,这可以大大超过单个开发计算机的处理能力。 code-server是在远程服务器上运行的Microsoft Visual Studio Code,可直接从浏览器访问。Visual Studio Code 是一个现代代码编辑器,具有集成的 Git 支持、代码调试器、智能自动完成以及可自定义和可扩展的功能。这意味着您可以使用各种设备,运行不同的操作系统,并始终拥有一致的开发环境。 在本教程中,您将在 DigitalOcean Kubernetes 集群上设置代码服务器云 IDE 平台,并将其公开在您的域中,并使用 Let’s Encrypt 证书进行保护。最后,您将在 Kubernetes 集群上运行 Microsoft Visual Studio Code,可通过 HTTPS 访问并受密码保护。 先决条件 一个 DigitalOcean Kubernetes 集群,您的连接配置为kubectl默认设置。创建集群时,有关如何配置的说明kubectl显示在“连接到集群”步骤下。要在 DigitalOcean 上创建 Kubernetes 集群,请参阅Kubernetes 快速入门。 安装在本地计算机上的 Helm 包管理器。为此,请完成步骤 1 并添加如何使用 Helm ..
该系列的一部分: JavaScript 设计模式 每个开发人员都努力编写可维护、可读和可重用的代码。随着应用程序变得更大,代码结构变得更加重要。设计模式证明对于解决这一挑战至关重要 – 在特定情况下为常见问题提供组织结构。 下面的设计模式只是可以帮助您升级为 JavaScript 开发人员的许多有用模式之一。有关完整集,请参阅JavaScript 设计模式。 Singleton 只允许单个实例化,但同一对象的多个实例。Singleton 限制客户端创建多个对象,在创建第一个对象后,它将返回自身的实例。 对于大多数之前尚未使用过单例的人来说,找到它的用例是很困难的。一个例子是使用办公室打印机。如果一个办公室有十个人,他们都使用一台打印机,那么十台计算机共享一台打印机(实例)。通过共享一台打印机,他们共享相同的资源。 var printer = (function () { var printerInstance; function create () { function print() { // underlying printer mechanics } function turnOn() { // warm up // check for paper } return { // public + private states and behaviors print: ..
介绍 Django 是一个用 Python 编写的免费开源 Web 框架,它遵循模型模板视图 (MTV)软件架构模式。MTV 模式是 Django 对模型-视图-控制器 (MVC)模式的采用。根据 Django 软件基金会的说法,模型是数据的唯一权威来源,视图描述了通过 Python 回调函数呈现给用户的特定 URL 的数据,模板是 Django 动态生成 HTML 的方式。 Django 的核心原则是可扩展性、可重用性和快速开发。它还以其框架级的一致性和松散耦合而闻名,允许各个组件相互独立。不要重复自己(DRY 编程)是 Django 原则的一个组成部分。 在本教程中,我们将搭建一个 Django 开发环境。我们将安装 Python 3、pip 3、Django,virtualenv以便为您提供使用 Django 开发 Web 应用程序所需的工具。 先决条件 具有sudo在 Debian 或 Ubuntu Linux 服务器上设置的权限的非 root 用户帐户。您可以通过遵循并完成Debian 8的初始服务器设置,或Ubuntu 16.04教程的初始服务器设置中的步骤 1-4来实现这些先决条件。 第 1 步 – 安装 Python ..
第 1 步 – 设置公共 SSH 密钥 在我们的源服务器上,我们将生成没有密码的公共 SSH 密钥: ssh-keygen -f ~/.ssh/id_rsa -q -P “” cat ~/.ssh/id_rsa.pub 这是我们的公共 SSH 密钥,可以放置在其他主机上以授予我们访问权限: SSH-RSA AAAAB3NzaC1yc2EAAAADAQABAAABAQDLVDBIpdpfePg / a6h8au1HTKPPrg8wuTrjdh0QFVPpTI4KHctf6 / FGg1NOgM ++ hrDlbrDVStKn / b3Mu65 // tuvY5SG9sR4vrINCSQF ++一个+ YRTGU6Sn4ltKpyj3usHERvBndtFXoDxsYKRCtPfgm1BGTBpoSl2A7lrwnmVSg + u11FOa1xSZ393aaBFDSeX8GlJf1SojWYIAbE25Xe3z5L232vZ5acC2PJkvKctzvUttJCP91gbNe5FSwDolE44diYbNYqEtvq2Jt8x45YzgFSVKf6ffnPwnUDwhtvc2f317TKx9l2Eq4aWqXTOMiPFA5ZRM / CF0IJCqeXG6s + qVfRjB根@ cloudads 将此密钥复制到剪贴板并登录到目标服务器。 将此 SSH 密钥放入您的 ~/.ssh/authorized_keys 文件中: 如果您的 SSH 文件夹不存在,请手动创建: mkdir ~/.ssh chmod 0700 ..
作者选择Open Sourcing Mental Illness Ltd接受捐赠,作为Write for DOnations计划的一部分。 介绍 PHP 是一种流行的服务器脚本语言,以创建动态和交互式网页而闻名。开始使用您选择的语言是学习编程的第一步。 本教程将指导您在 Ubuntu 上安装 PHP 7.4 并通过命令行设置本地编程环境。您还将安装依赖项管理器Composer并通过运行脚本来测试您的安装。 先决条件 要完成本教程,您需要一台安装了 Ubuntu 18.04 的本地或虚拟机,并具有管理访问权限和到该机器的 Internet 连接。您可以通过Ubuntu 版本页面下载该操作系统。 第 1 步 – 设置 PHP 7.4 您将在命令行上完成安装和设置,这是一种与计算机交互的非图形方式。也就是说,您将输入文本并通过文本接收来自计算机的反馈,而不是单击按钮。 命令行,也称为 shell 或终端,可以帮助您修改和自动化您每天在计算机上执行的许多任务,是软件开发人员必不可少的工具。有许多终端命令需要学习,可以让您做更强大的事情。文章Linux 终端简介可以让您更好地了解终端。 在 Ubuntu 上,您可以通过单击屏幕左上角的 Ubuntu 图标并terminal在搜索栏中键入来找到终端应用程序。单击终端应用程序图标将其打开。或者,你可以打的CTRL,ALT以及T在同一时间你的键盘上的键自动打开终端应用程序。 您将希望避免依赖 PHP 的默认版本,因为该默认版本可能会根据您运行代码的位置而变化。您可能还希望安装不同的版本以匹配您正在使用的应用程序或升级到更新的版本,例如 PHP 8。 运行以下命令来更新apt-get自身,这可确保您可以访问要安装的任何内容的最新版本: sudo apt-get update 接下来, install software-properties-common,它增加了对其他软件源的管理: sudo apt ..
作为Write for DOnations计划的一部分,作者选择了免费和开源基金来接受捐赠。 介绍 Mattermost是一个开源协作和消息传递平台,其创建时考虑到了安全性和可配置性,提供了与Discord或Slack相当的功能。它提供群组、线程和一对一消息传递、无限搜索历史记录和文件共享功能、双因素授权和通知。Mattermost 还提供了 webhooks 和机器人集成以进行进一步的定制。由于其响应式 Web 界面和专用移动应用程序,可以从各种类型的现代设备访问它。 在本教程中,您将在 Ubuntu 18.04 服务器上设置Mattermost Team Edition。首先,您将安装它并在您的域中公开它,并使用免费的Let’s Encrypt TLS 证书进行保护。然后,您将启用电子邮件通知、自定义品牌并创建您的留言板(在 Mattermost 中称为团队)。 先决条件 运行 Ubuntu 18.04 的服务器,具有至少 2GB RAM、root 访问权限和 sudo、非 root 帐户。您可以按照此初始服务器设置指南进行设置。 MariaDB 安装在您的服务器上。要了解如何执行此操作,请访问如何在 Ubuntu 18.04 上安装 MariaDB。您可以按照本教程开头概述的简短版本进行操作。 在您的服务器上以仅发送模式安装 Postfix。访问如何在 Ubuntu 18.04教程中安装和配置 Postfix 作为仅发送 SMTP 服务器以进行设置。您将使用它来启用从 Mattermost 发送电子邮件通知。 您的服务器上安装了 Nginx。有关如何执行此操作的指南,请完成如何在 Ubuntu 18.04 上安装 Nginx 的步骤 ..
该系列的一部分: 如何编写 Ansible Playbooks Ansible 是一种现代配置管理工具,不需要在远程节点上使用代理软件,仅使用 SSH 和 Python 在托管服务器上进行通信和执行命令。本系列将带您了解可用于编写服务器自动化剧本的主要 Ansible 功能。最后,我们将看到一个实际示例,说明如何创建剧本以自动设置远程 Nginx Web 服务器并向其部署静态 HTML 网站。 模板允许您使用基于Jinja2 模板系统的预定义模型在节点上创建新文件。Ansible 模板通常保存为.tpl文件,并支持使用变量、循环和条件表达式。 模板通常用于基于变量值配置服务,这些变量值可以在 playbook 本身、包含的变量文件中设置或通过fact 获取。这使您能够创建更通用的设置,根据动态信息调整行为。 要通过实际示例试用此功能,请创建一个新目录以在您的ansible-practice目录中保存非剧本文件: mkdir ~/ansible-practice/files 接下来,为 HTML 登录页面创建一个新模板文件。稍后,我们将设置一个剧本,它将配置您的远程节点以使用 Nginx 提供登陆页面: nano ~/ansible-practice/files/landing-page.html.j2 将以下内容添加到模板文件中: ~/ansible-practice/files/landing-page.html.j2 <!doctype html> <html lang=”en”> <head> <meta charset=”utf-8″> <title>{{ page_title }}</title> <meta name=”description” content=”Created with Ansible”> </head> <body> <h1>{{ page_title ..
该系列的一部分: 如何使用 CSS 构建网站 本教程是使用 CSS创建和自定义此网站的系列的一部分,CSS 是一种用于控制网站呈现的样式表语言。您可以按照整个系列重新创建演示网站并熟悉 CSS 或将此处描述的方法用于其他 CSS 网站项目。 在继续之前,我们建议您了解一些 HTML 知识,HTML 是用于在 Web 浏览器中显示文档的标准标记语言。如果您不熟悉 HTML,可以在开始本系列之前先阅读我们如何使用 HTML 构建网站系列的前十个教程。 介绍 在本教程中,您将创建一个 CSS类选择器,它允许您仅将 CSS 规则应用于分配了该类的 HTML 元素。当您想为同一 HTML 元素的不同实例应用不同的样式规则时,CSS 类选择器非常有用。 先决条件 要遵循本教程,请确保您已按照本系列如何设置 CSS 和 HTML 练习项目中的上一个教程中的说明设置必要的文件和文件夹。 CSS 类选择器的工作原理 CSS 类选择器允许您将样式规则分配给您使用该类指定的 HTML 元素,而不是某个元素的所有实例。与名称是预先确定的HTML 元素(例如<p>、<h1>或<img>)不同,类名称由开发人员在创建类时选择。类名总是以 开头.,这可以帮助您区分 CSS 文件中的标签选择器和类选择器。 类选择器的 CSS 规则的编写方式与标签选择器的规则相同,不同之处.在于类名的前置: .red-text { color: red; } 要在向网页添加 ..