CWIKIUS
  • 首页
  • Java
  • Jersey
  • Jira
  • Confluence
  • U.S.
    • USRealEstate
    • U.S. Travel
    • H1B
  • 项目和网站
    • CWIKI.US
    • OSSEZ 社区
    • WIKI.OSSEZ.COM
    • BUG.OSSEZ.COM
    • RSS.OSSEZ.COM
Computer Science
Computer Science

Firebase 命令行工具

Firebase 是 Google 提供的一个工具。 你可以将你的 Angular 项目部署上去。 要使用 Firebase,首先需要安装 Firebase CLI。 下载的地址为:Firebase CLI reference     下载成功后,双击运行。 在很多时候,可能会 Windows 有提示权限不够,或者你程序有风险,这些你都需要接受风险才能进行下一步。     因为可能需要下载安装 visual studio,所以上面的过程会比较长。 如果没提示退出,请耐心等待。 npm 安装 当然,你也可以使用 npm 直接进行安装。 安装的命令为: npm install -g firebase-tools 如果你得到了提示为 gyp ERR! find VS You need to install the latest version of Visual Studio gyp ERR! find VS including the "Desktop development with C++" workload. gyp ERR! find VS For more information consult the documentation at: gyp ERR! find VS https://github.com/nodejs/node-gyp#on-windows     这是因为在 Firebase 安装的时候需要使用 visual studio 的 C++ 编译器来进行编译。 你可以选择下载 Windows 的 visual studio C++ 编译器。 目前,你可以下载最新的 2019 年构建版本,下载地址为: Download Visual Studio 2019 for Windows & Mac     在下载完成后,选择运行这个构建版本。 然后可以选择桌面开发工具同时包含有 C++     然后等待安装的完成。     如果安装还不成功的话,可以设置 npm config set msvs_version 2019 这个命令的意思是让 npm 使用 2019 年的版本进行编译。 如果你安装的是 2017 或者 2015 你也可以在命令行的后面设置不同的版本。 然后再次运行:npm install -g firebase-tools 来进行安装。 如果一切顺利,你将可能会看到输出如下图所示。     上面的输出表示的是 firebase 已经安装成功了。 检查版本 可以通过运行下面的命令:firebase -V 来检查安装的版本。     如果一切顺利,你将会看到已经安装成功的版本。 至此,说明你的 Firebase 已经配置成功,并且可以使用了。 https://www.ossez.com/t/firebase/13410

2021年03月29日 0Comments 11Browse 0Like Read more
Computer Science

Python SMTP 发送邮件方法

在很多时候,使用 Python 发送邮件可能没有办法使用邮件服务器提供的 API,因为不是所有的邮件服务商都会提供 API 供客户使用的。 通常使用邮件 API 的邮件发送服务都需要额外的收费。 因此我们在邮件测试发送的时候,可能需要的是 SMTP 邮件发送服务,通常这个服务是所有邮件服务商都会提供的。 要使用 SMTP 邮件发送服务,你需要有下面的信息才可以完成和测试: SMTP 邮件服务器的地址,端口,登录用户名和登录用户密码 发送和接收邮件的地址 邮件的主题和正文 看起来是不是有点复杂,实际上,Python 提供了一个sendmail 的方法,这个方法在 smtplib 库中。     简单来说按照下面的步骤来做就可以了。 构建消息对象 在 Python 中有一个库为 MIMEMultipart,我们可以使用这个来构建消息对象。     要做的事情也比较简单,在定义 MIMEMultipart 对象后,你需要在这个对象中设置是谁发送的,发送给谁,主题是什么。 然后再在这个对象中插入正文,你可以插入 HTML 也可以插入纯文本。 为了让邮件比较美观,通常我们都会插入 HTML 的文本,很多时候为了插入更多的数据,我们还可能会用到模板。 发送邮件 在定义完成消息对象后,我们就可以发送邮件了。 在发送邮件之前,我们需要初始化 SMTP 对象,通常使用的是 smtplib.SMTP(smtpserver) 方法。 在这个方法中,我们会定义发送邮件服务器的地址和端口。 随后我们可能会调用一个 starttls 方法,这个方法是希望发送邮件服务器使用的是 TLS 模式。 随着技术的进步,和安全的考虑,很多邮件发送服务器都要求使用 TLS 模式来进行发送。 然后使用 server.login(email_user, email_passwd) 方法来登录服务器。 在上面的步骤完成后,我们就等于完成了你的 Python 代码和邮件服务器的通信了,你的代码在这个时候会拿到服务器的对象了,并且完成了对象的初始化了。 在这一步完成后就可以调用 sendmail 函数发送邮件。 当邮件发送完成后,不要忘记关闭邮件服务器的连接。 # Connect to the SMTP server server = smtplib.SMTP(smtpserver) server.starttls() server.login(email_user, email_passwd) sending_response = server.sendmail(from_addr, to_addr, message.as_string()) print(sending_response) server.quit() 针对上面的发送服务,请参考下上面提供的伪代码。 完整的测试代码请参考 GitHub 上面的:python-tutorials/SendMailSMTP.py at master · cwiki-us-docs/python-tutorials · GitHub 要点 Python 发送邮件的服务还是比较简单的。 因为邮件发送服务都需要和第三方的邮件服务器进行通信,在这个通信的过程中,最重要的步骤就是先要获得邮件服务器的链接。 通常这个链接因为有防火墙,发送用户名限制,密码要求等等可能会导致连接获得失败而没有办法拿到连接服务器的对象。 针对遇到的情况具体问题具体分析就可以了。 遵循的原则步骤就是: 构建消息 获得服务器连接 发送邮件 关闭服务器连接 需要注意的是不要忘记关闭服务器连接。   https://www.ossez.com/t/python-smtp/13403

2021年03月24日 0Comments 28Browse 0Like Read more
Computer Science

Python API 邮件发送测试

在运营或者对各种 SDK 或者 API 进行调试的时候,邮件功能基本上都会被使用到。 在测试的时候,可能很多人都会使用 SMTP 或者自己的邮箱使用 SMTP 来进行发送,通常来说是没有问题的。 但是需要知道一个网站或者一个平台在一个很短的时间内需要发送大量的邮件,同时邮件还有可能被防火墙阻挡等情况的发生导致无法送达。 因此普通邮箱自带的 SMTP 通常是没有办法满足需求的,因此我们可能需要一些专业的邮箱服务,具体使用哪个服务,我们就不在这里说明了,避免广告嫌疑。 一般来说专业的邮箱服务器都会提供 API 和 SMTP 2 种方式,在这里我们尝试使用 Python 调用 API 来进行发送。 Python 调用 API Python 调用 API 非常简单,通常需要一个称为 requests 的类就可以了。 首先你需要在各大邮件发送平台上面对发送 API 使用的 KEY 进行设置。 我们当前使用的邮件服务器,提供了一个 Sandbox 发送域名,通常为了避免发送大量的垃圾邮件,你还需要将授权的邮箱地址添加进来。 这个的目的是只会将发送的邮件发送到指定的邮箱地址中,避免在调试 API 的时候可能不小心发送大量邮件导致问题。     当完成上面 2 个步骤后,可以选择 API。 然后选择上面的代码中的 Python 代码。     代码分析。 上面的代码就是非常简单的 Request 代码了。 需要执行上面的代码,你需要下面几个配置: API 地址,根据不同的服务器不同,API 的地址都会告诉给你。 Key,不同的 API 授权方式不一样,你需要到你邮件服务商上面找的分配给你的 KEY,通常这个 KEY 是被用于授权使用的。 数据,python 的 request 能够接受数据,这个参数为 data,在 data 中通常使用 JSON 的数据格式,具体配置你需要参考下 Python 的函数参数和邮件服务商提供的配置。     在上面的参数中,我们可以进行配置后进行邮件发送的测试了。 如果一切顺利,API 将会返回特定的结果。 如果你希望进行真实的邮件测试的话,那么需要使用真实的域名配置。   https://www.ossez.com/t/python-api/13402

2021年03月23日 0Comments 15Browse 0Like Read more
Computer Science

Python PyAutoGUI 库

在爬虫的时候有些元素可能无法点击或者被获取。 在这个时候我们需要考虑使用 PyAutoGUI 库,这个库被用来对鼠和键盘来进行操作。 可以考察下下面的代码: import time import pyautogui while True: # 移动鼠标,duration=0.1是鼠标移动过程中的延迟速度 pyautogui.moveTo(x=300, y=300, duration=0.1) time.sleep(3) # 移动鼠标到坐标后,单击左键 pyautogui.click(x=700, y=300, duration=0.1) time.sleep(3) # 移动鼠标到坐标后,双击左键 pyautogui.doubleClick(x=600, y=300, duration=0.1) time.sleep(3) # 移动鼠标到坐标后,单击右键 pyautogui.rightClick(x=700, y=300, duration=0.1) time.sleep(3) x , y 上面为屏幕中的像素地址。 有关 PyAutoGUI 的使用情况和用例,请访问其官方地址:Welcome to PyAutoGUI’s documentation! — PyAutoGUI documentation 上面画出图形就是使用 PyAutoGUI 库生成的。 比如说是使用鼠标在画图工具中进行画图生成的图形。 https://www.ossez.com/t/python-pyautogui/13400

2021年03月20日 0Comments 48Browse 0Like Read more
Computer Science

Python 随机数函数 choices

Python 有关随机数工具类库中提供了一个随机数函数 choices。 这个随机数函数的主要目的是从给出的列表中生成随机数函数,同时还可以为每一个列表中的元素设置权重。     可以考察使用下面的代码: import random # choices Function Test print('') my_list = ["apple", "banana", "cherry"] print(random.choices(my_list, weights=[10, 1, 1], k=12)) 上面的代码将会输出为: ['apple', 'apple', 'banana', 'apple', 'apple', 'apple', 'apple', 'cherry', 'banana', 'apple', 'apple', 'apple'] 请注意的是,上面的代码中,我们使用了一个 weight 参数,这个参数的主要目的就是为了在随机数函数中针对 choices 函数设置权重,这个权重的设置将会导致上面列表中的第一个元素的权重更高。 最后一个 K = 12 参数的意思就是生成 12 个随机数列表。 https://www.ossez.com/t/python-choices/13399

2021年03月19日 0Comments 51Browse 0Like Read more
Computer Science

Python 随机字符串

在很多时候我们可能需要生成一些随机字符串。 Python 也为我们提供了生成随机字符串的方法和函数。 这个函数是在 random 库中定义的函数 choice。 通常 choice 将会从给定的字符串中挑选一个。 根据 Python 官方在 string.py 中有关字符串的定义。 whitespace = ' \t\n\r\v\f' ascii_lowercase = 'abcdefghijklmnopqrstuvwxyz' ascii_uppercase = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' ascii_letters = ascii_lowercase + ascii_uppercase digits = '0123456789' hexdigits = digits + 'abcdef' + 'ABCDEF' octdigits = '01234567' punctuation = r"""!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~""" printable = digits + ascii_letters + punctuation + whitespace 上面的字符串是可以供你随时使用的 ascii 字符串。 当调用方法 choice(string.ascii_uppercase) 的意思是将会随机从大写字符中挑选出一个字符。 如果我们希望要有 6 个长度的随机字符串,应该怎么办呢? 我们应该需要将上面的函数执行 6 次,然后将 6 次执行的结果拼接起来即可。 比如,我们可以这样写: "".join([choice(printable) for x in range(int(length))]) length 是我们希望拼接的字符串的长度。 printable 是可以用于生成字符串的字符。     如上面图中我们代码运行的结构就是用于测试随机字符串生成的。 https://www.ossez.com/t/python/13398

2021年03月19日 0Comments 43Browse 0Like Read more
Computer Science

Python 生成 QR 二维码

我们在很多时候都会考虑在程序的某个地方生成 QR 二维码。 Python 已经为我们提供了一个比较便捷的库了,这个库就是 qrcode,库的地址为:qrcode · PyPI 你可以使用这个库来生成 png 或者 svg 格式的 QR 代码。 使用的方法也非常简单在设置好 qrcode 对象收,使用 make 将需要生成的数据为参数导入即可。 具体的使用办法,可以参考库官方提供的文档。 需要注意的是,这个库使用了 Pillow 来生成 QR 代码的。如果你的 Python 环境没有安装的话,你需要安装这个扩展。 Pillow Pillow 是 Python Imaging Library 的简称。其实这个就是为 Python 提供图像处理的一个库。 官方库和地址为: https://pypi.org/project/Pillow/。 如果你没有在你的环境中安装这个库的话,如果使用 QRCode 库,你将会得到: ModuleNotFoundError: No module named 'PIL' 这个错误。     通过运行命令 pip install pillow 来进行安装即可。 需要这个库也的理由也非常简单,QR 二维码就是一个图片,在图片生成的时候我们通常都会用到第三方的库,因为很多语言对图片的原生处理并不是非常友好。 通常第三方的库能够提供更多的功能。 通过运行代码,我们可以在 IDE 中看到生成的二维码了。这个时候你可以使用手机上的扫一扫等直接看看能不能被正常识别。     有关测试使用的代码,请访问 GitHub 上的源代码。 链接地址为:python-tutorials/QRCode.py at master · cwiki-us-docs/python-tutorials · GitHub Python 生成二维 QR 代码的语句非常简单,只需要有很少的语言基础就可以使用。 https://www.ossez.com/t/python-qr/13396

2021年03月19日 0Comments 69Browse 0Like Read more
Computer Science

Python 打印回车换行

如果你对 Java 程序比较熟悉的话,你可能知道在 Java 中的回车换行是 \r\n。 当我们在 Python 中同时也使用 \r\n 的时候,我们可能会遇到输出的回车换行是 2 行了。     如上面程序运行的结果所示。 解决方案 如果你希望 Python 程序只打印一个回车换行的话。 针对上面的代码,替换为 print('') 就可以了。 我们并不需要在上面的 print 代码中再次输入换行符,Python 将会自动为我们打印一个空格。 https://www.ossez.com/t/python/13395

2021年03月19日 0Comments 27Browse 0Like Read more
Computer Science

Python if __name__ == ‘main’ 的作用介绍

简单来说就是这是一个 IF 语句,这个 IF 判断后面的话,如果你的 Python 程序是直接运行的话,将会被执行,如果是作为导入模块的话,将不会被执行。 在理解上面的话之前,你可能需要参考下帖子:Python 的特殊变量 __name__ 中的内容。在上面的链接中解释了特殊变量 __name__ 的作用。 这样理解就好了,__name__ 这个变量就是一个标识 Python 程序的全局变量。 我们都知道 Python 是没有 main() 函数的,所以如果在一个 Python 程序运行的时候,我们可能希望对使用的变量进行一些定义,如果使用模块运行的时候,可能不需要这个步骤。 因为这个步骤可能会干扰作为模块运行时候提供的函数。     if __name__ == "__main__" 最最简单的解释就是起到了一个开关的作用。通常用于在作为程序运行的时候进行一些初始化操作。 https://www.ossez.com/t/python-if-name-main/13394

2021年03月19日 0Comments 20Browse 0Like Read more
Computer Science

Python 的特殊变量 __name__

在很多 Python 的代码的时候,我们通常可能会看到 __name__ 这个变量。 对于 Python 的初次使用用户来说可能对这个变量不是非常熟悉。 这样理解就好了,__name__ 这个变量就是一个标识 Python 程序的全局变量。 我们都知道 Python 是没有 main() 函数的,如果你对 main 函数不是非常熟悉的话,可以自行脑补下。简单来说就是所有程序在运行的时候都需要一个入口,main 函数就是程序的入口,通常就是在程序启动后的入口,所有的程序都是从 main 函数开始执行的。 __name__ 就是一个构建到 Python 解释器中的变量,用于标识当前运行模块的名称。 这个与 Java 中的 this.getClass().getName() 有点类似。 实例和测试 我们下面可以进行一些实例和测试。 假设我们有下面 2 个文件。 ImportVarName.py       这个文件是被作为模块导入的。文件的源代码如下: # -*- coding: utf-8 -*- # PPython __name__ module ImportVarName # Author - https://www.ossez.com print("ImportVarName __name__ = %s" % __name__) if __name__ == "__main__": print("ImportVarName is being run directly") else: print("ImportVarName is being imported") VarName.py 这个文件可以考虑的是我们的主函数文件。 文件的源代码如下: # -*- coding: utf-8 -*- # Python __name__ module Test # Author - https://www.ossez.com import ImportVarName print("Main VarName __name__ = %s" % __name__) if __name__ == "__main__": print("VarName is being run directly") else: print("VarName is being imported") 运行结果和解读 对上面的运行结果进行一些解读如下。     如果我们直接运行源代码:VarName.py,我们会得到下面的输出。 ImportVarName __name__ = ImportVarName ImportVarName is being imported Main VarName __name__ = __main__ VarName is being run directly Process finished with exit code 0 可以看到是因为我们从我们认为的主函数运行的,但是在主函数运行之前,我们导入了模块 ImportVarName,因此在模块 ImportVarName 中的 __name__ 变量将会被定义为你导入的模块的名称。 如果你直接运行导入的模块 ImportVarName 的话,模块 ImportVarName 中的 __name__ 将会显示为 __main__。 https://www.ossez.com/t/python-name/13393

2021年03月19日 0Comments 31Browse 0Like Read more
12345…135
Categories
  • Akka
  • Algorithm(算法)
  • AMQP
  • Angular
  • CI
  • Compile And CI
  • Computer Science
  • Confluence
  • DataBase
  • Gradle
  • Hibernate
  • IDE
  • Java
  • Jersey
  • Jira
  • MariaDB
  • PrestaShop
  • Spring
  • Spring Batch
  • U.S.
  • U.S. Travel
  • USRealEstate
  • 我的小厨

COPYRIGHT © 2020 CWIKIUS. ALL RIGHTS RESERVED.

THEME KRATOS MADE BY VTROIS

湘ICP备2020018253号-1