Django短信和邮箱注册、支付宝沙箱的使用
邮箱注册
发送邮件
Smtp:轻量级邮件发送协议,邮件的发送和接收人。我们今天采用163邮箱的smtp服务器
IMAP 发邮件
Pop3 收邮件
开启163的smtp服务器(绑定自己的手机)
163邮箱地址:https://mail.163.com/
设置授权码
代码
#1.导入邮件模块
import smtplib
#2.邮件文本
from email.mime.text import MIMEText#3构建邮件
subject = "网易163邮箱邮件发送测试主题" #主题
content = "邮件的正文内容部分" #邮件内容
receiver = "123456789@qq.com" #接收者邮箱
sender = "987654321@163.com" #发送者邮箱
password = "666666666" #网易邮箱中自己设置的授权码#创建邮件文本对象 纯文本plain
msg = MIMEText(content,"plain","utf-8")
msg["Subject"] = subject #主题
msg["To"] = receiver #接收者
msg["From"] = sender #发送者#实例化 smtp服务器
smtp = smtplib.SMTP_SSL("smtp.163.com",994)
smtp.login(sender,password) # 使用邮箱账号和授权码进行登陆
smtp.sendmail(sender,[receiver],msg.as_string()) #发送信息
smtp.close()
- 优化代码,将配置放入到Settings.py中
Settings.py
#coidng:utf-8HOST = "smtp.163.com"PORT = 994SENDER = "123456789@163.com"PASSWORD = "666666666"
sendMail.py
import sys
from settings import *
#构建邮件
def sendMail(recver,content):subject = "网易163邮箱邮件发送测试主题"message = MIMEText(content,"html","utf-8")#发送内容#文本#编码message["Subject"] = subject #邮件的主题message["To"] = recver #收件人message["From"] = SENDER#发送邮件#实例化smtp服务器smtp = smtplib.SMTP_SSL(HOST,PORT)#登录自己的账户smtp.login(SENDER,PASSWORD)smtp.sendmail(SENDER,[recver],message.as_string())#as_string对message的消息进行了封装smtp.close()
基于Django的邮箱注册
- 发送邮件
(1).点击获取验证码按钮,发送邮件,获取验证码
(2).将邮箱、验证码、时间戳保存到数据库。 - 校验功能
(1).从数据库中获取保存的邮箱、验证码、时间戳进行比较
如果都相同则跳转到登陆页面。
如果不正确注册页面进行提示。
代码:
settings.py中进行配置
EMAIL_HOST_USER = ‘123456789@163.com’
EMAIL_HOST_PASSWORD = ‘666666666’
EMAIL_USE_SSL = True
EMAIL_HOST = ‘smtp.163.com’
EMAIL_PORT = 994模型类 models.py
# 邮箱注册
class EmailValid(models.Model):value = models.CharField(max_length=32) # 验证码email_address = models.EmailField() # 邮箱地址time = models.DateTimeField() # 时间戳
- ajax向邮箱发送验证码 register_email.py
<script>$(function () {// 1.获取验证码按钮监听$("#zphone").click(function () {// 2.获取邮箱var email = $("#email").val();$.ajax({url: "/buyer/send_message/?email="+email,type: "GET",data: "",success: function (data) {alert(data)}})})})
</script>
- ajax发送请求视图函数 views.py
#ajax发送请求,向邮箱发送邮件
def send_message(request):result = {'state':'error','data':''}if request.method == 'GET':#1.获取邮箱recver = request.GET.get('email') #接受人 @qq.comif recver:try:subject = '校内购物系统发送的校验码'text_content = 'hello,xiaoyuan'value = get_random_data()html_content = '<div><p>您好,你的验证码为:%s,请勿告诉他人</p></div>'%valuemessage = EmailMultiAlternatives(subject,text_content,'13262621737@163.com',[recver])message.attach_alternative(html_content, 'text/html')message.send()except Exception as e:result['data'] = str(e)else:result['state'] = 'success'result['data'] = 'success'#保存到数据库email_valid = EmailValid()email_valid.value = valueemail_valid.time = datetime.datetime.now()email_valid.email_address = recveremail_valid.save()finally:return JsonResponse(result)return render(request, 'buyer/register_mail.html')
- form表单提交的邮箱、验证码、密码
<form method="post" action="/buyer/register_email/">{% csrf_token %}<div>邮 箱:<input type="text" name="emailname" placeholder="请输入邮箱" required="" id="email"class="input"/><span>{{ error_msg.email }}</span></div><div>验证码:<input type="text" name="code" placeholder="请输入验证码" required="" style='width: 150px'class="input" id="code"/><input class="huoqu" id="zphone" type="button" value=" 获取验证码 "><span>{{ error_msg.yzm_sx }}{{ error_msg.yzm_error }}</span></div><div>密 码:<input type="password" name="userpass" placeholder="" required="" class="input"/></div><div><input type="submit" id="submit" style="align:center" value="注册会员" class="gouwu"/></div></form>
- 视图函数 views.py
def register_email(request):result = {'state':'error','data':''}if request.method == 'POST':#1.获取表单提交的内容email_addr = request.POST.get('username') #邮箱code = request.POST.get('code') #验证码userpass = request.POST.get('userpass') #密码email = EmailValid.objects.filter(email_address=email_addr).first()if email:'''判断验证码'''if code == email.value:'''判断时间戳'''now = time.mktime(datetime.datetime.now().timetuple()) #当前时间db_time = time.mktime(email.time.timetuple()) #数据库保存时间if now-db_time >= 600: #一分钟result['data'] = '验证码过期了'# 删除数据库中的信息。email.delete()else:#保存此用户buyer = Buyer()buyer.name = email_addr #邮箱buyer.password = pwd_encrypt(userpass) #密码buyer.save()result['state'] = 'success'result['data'] = 'success'#删除数据库中的数据emailvalidemail.delete()#重定向到登录界面return redirect('/buyer/login/')else:result['data'] = '验证码错误'else:result['data'] = '用户不存在'
短信注册
短信发送平台:http://www.ihuyi.com/
注册账户
登录
首页
验证码通知短信
默认是10条免费,API接口信息 APPID 和 APPKEY 需要使用,先保存下来。
文档中心下载接口文档
文档浏览:
短信内容模板
阅读demo,告诉用户使用方式
代码
- 下载requests模块
- 代码格式
#coding:utf-8import requestsurl = "http://106.ihuyi.com/webservice/sms.php?method=Submit" #请求地址#固定的参数
mobile = "13331153360" account = "C85050877" password = ""#请求的头部
headers = {"Content-type": "application/x-www-form-urlencoded", "Accept": "text/plain"}#数据整合
data = {"account": account,"mobile": mobile,"password": password,"content": "您的验证码是:9527。请不要把验证码泄露给其他人。"
}
#发起请求
response = requests.post(url = url,data = data, headers = headers)
#接收返回内容
resutl = response.content.decode()
print(resutl)
支付宝沙箱使用
1.搜索
或者:
https://open.alipay.com/platform/home.htm
2.免费入驻
3.登陆
4.同意
5.实际开发 选择 开发中心–网页&移动应用
注:
因为需要使用公司的营业执照等等机密信息,因此暂时创建不了,我们可以使用沙箱环境
6.沙箱环境
沙箱环境也就是开发模拟环境,和真实的开发环境一样。
APPID (应用的唯一标识): 2016092800613099
支付宝网关(支付路径): https://openapi.alipaydev.com/gateway.do
沙箱账号:
7.开发文档
8.产品介绍
应用场景介绍的是支付宝的使用。
9.快速接入
项目和支付宝对接的步骤。
(1).创建应用
我们使用沙箱环境,应用已经被创建好了。
(2).配置秘钥
Django网站需要用自己的应用私钥进行加密,支付宝平台使用django应用的公钥解密。
支付宝平台使用自己的私钥进行加密,django网站用支付宝平台的公钥解密。
回到沙箱环境:
(3).搭建和配置开发环境
a.下载服务端sdk (支付宝模块)
支付宝仅仅提供了JAVA、PHP、.NET 三个语言版本的SDK,并没有提供Python的。
但是我们可以下载第三方(别人写好的Python模块)的Python SDK
(4).API列表
不同的网址,返回不同的请求内容。
查看API文档:
文档中会告诉你请求的地址和携带的参数。
沙箱环境的请求地址,就是支付宝网关地址,比真实开发网址中多了一个dev
正式环境 https://openapi.alipay.com/gateway.do
沙箱环境 https://openapi.alipaydev.com/gateway.do
app_id:就是应用的APPID
Method:接口名称(也就是使用哪个地址)
Sign:商户请求参数的签名串,详见签名
biz_content:自己业务请求需要的参数必须写到这个参数中
Subject: 订单标题
以上接口和参数我们在使用支付宝的时候,需要调用,比较麻烦,我们刚才介绍的使用第三方的SDK,对原生的接口进行了封装,调用起来比较方便。
(5).支付宝调用流程
提示:
1.returl_url : 同步请求,当用户支付完成后,支付宝给项目发生支付结果。
2.notify_url 异步请求
3.支付宝返回支付页面的地址,就是付钱页面
参考demo
https://github.com/fzlee/alipay/blob/master/README.zh-hans.md
先pip install pycryptodome
后pip install python-alipay-sdk --upgrade
写代码,生成支付码,生成的支付码需要用沙箱钱包app才能支付
# 测试支付宝视图函数
def test_alipay(request):# 应用的私钥app_private_key_string = """-----BEGIN RSA PRIVATE KEY-----MIIEpQIBAAKCAQEA2RytcQwVHDi5ra/xpHm2rQ0TjXEDBNZYmUVmNbyd12hnbCBNUAP3m/6QgzeSe2Y7wPKKmp1mb+BVVKZQua8VoSohRlRE59GyK1f0IPCR1Tusjwkuw+E6dsarPRCSNJ1knJEsyjBwDCsG/tx/nUHbhrbWss0OoGb+h3TMjMWT82fXX3G0aJpA+uRe6n18iR/6q/1vgWA1HarcTZfGlTAOox3/fj7bDluOr9cFCTVNPLahN3P/9qvwCQGE7pouBB8qHkAhutTV3wG8qf8BW2tMag0F9Yb82yvQVnbt1AARh36VrUGV555vWWkOaSrGViJhKKpZcftiQmgbH6VUw1iAtwIDAQABAoIBAQCj6ViwTlTpt5HHJVwjtphJ0eN/F2EWF9VP8esWis4HwJTENybnT/dyWCA2UJBQhYB7TSGDVW3u7Mi/Xcj4Rsznnez9McXL1q7StlZjP/x5pdHDM0WRMMt4vMivE4GuI13ALoJIK4WMSje/1iyqRvw7mnJBDzsJsnhbP7zmUow+aDTSx5uDHqwvZuGzAvpAvkexVqIouTOJ+gkcaJAcoQpiLuvuldV+/CIdhH55SFAM5FQH8MXhs4wFeX8+9keJ+DahF37Tl3Dk90lzdeOV/NBbHdhqjdh9WthSsO3S6MUxx2vIAFLZ9BXKsPE873JePAqY5vUO8XwDeUHCMV7wYX4RAoGBAPlNpKVnWapwwh+Ri1kJz3NZBDAJ7ik0g5plUAKKBdzX3LZYcqTjilmgRIBOub0sDx76rTUd40cbiv9XOa6qXcyNHSer+yEMa0v5gRayEBffId9xoVandnJdGcDRWh2IovtVr7cQWwYtTJCCoG0N2qSShnwoiqnnE2ORbJ19SkZNAoGBAN7xqwsJr1tjzJSq43Aa8jwtvV3Pcs+YqH+uzHdebfK8sEc0a7Hvk57Uc2w0a3mahOu79cX7FIXSX9MrC7vv4slbC/vfptKSM4VsSphn2eT6G20rZjp+UjwOPWTz4OfC5ewS5lOjP8+fycUdyPfjZ80I9C5NWVwUEVr0L2riwO0TAoGBAJ/g8D73CaTpjUTLhQ8D4Jt7sdjQ9YBNYjyozmfidiIL+UqjbFpcZkRWKLgURL+RutzGLEBNO41Fl51rJd3i+iaNNO5VN8cY/NKLXwLcDMASY9m1OJ+m46oyFKr4V49rKgJ/ECIZhhZvBJQEgbeOU/KI2WBUa6DMRT3sbDiPugtdAoGAFaYqEdxS5vD+AMHHbC9xrl5SsTVf1MDiO+PhfwXwb03bYE661oCJOTcwLiW4+goDNlD+QMds6sHPBFZ9wTY+M4df1omVTYVc82vcoogTJKUU3LkGKE/z9Fj9pTv5bwgCA7aiHyUPIT5G/Zky1r+CaOqhq41fTA220bo8kIiMa3kCgYEAgDRVKzhz1ueqIOsA6XcdHlhpSoUKmzwHeE2sD00kWVyQkKGN2/TczZ+h0seEM20M3C7tRVJjaN5rgfNg7biEtCxqvQgiWKchb8wfPm6Tg7Zlw9njeKBbQzq7YkO7iCLIKZoygTqx65b/gYx8QjSeZ1EoS532ndDztx+RmITuJbE=-----END RSA PRIVATE KEY-----"""# 支付宝的公钥alipay_public_key_string = """-----BEGIN PUBLIC KEY-----MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAubtn6v/fRxicLhOdTijJ0xqXLZflHjvq31Y13NId7Xjs5w7vHiddCrml0k69iD0COo/1Ke8AJLVajwh9Zj/ZtAjjRjiK9cRW4SgTRlTm3Bnbqm5aZucmunOwgJfeCohgLTkFIwOOPbSb93u+nwvMTWAayiblm3aHGmZuBxb0EsUP5IBg1XCs26Am5gV8nWZ87cxDrF1C36i94kbDpmhFubicEIw+NMRuyKmWObrTZmxugv2AcM4lgM1LVz+Qa4H1mj0KQl4CjRHMlImSrznsvWq+5HUbIxMA7VUStA+mpJHFG4azb1jWOlatK984vXXgfLqRSH/gu2lkRA9gEGc36wIDAQAB-----END PUBLIC KEY-----"""alipay = AliPay(appid="2016092800613099",app_notify_url=None, # 默认回调urlapp_private_key_string=app_private_key_string,# 支付宝的公钥,验证支付宝回传消息使用,不是你自己的公钥,alipay_public_key_string=alipay_public_key_string,sign_type="RSA2", # RSA 或者 RSA2debug=True # 默认False)# 电脑网站支付,需要跳转到https://openapi.alipay.com/gateway.do? + order_stringorder_string = alipay.api_alipay_trade_page_pay(out_trade_no="2019051512321", # 订单idtotal_amount="100", # 支付金额,注意是字符串类型的subject='全球水果生鲜商城', # 主题return_url=None,notify_url=None # 可选, 不填则使用默认notify url)# https://openapi.alipaydev.com/gateway.doreturn redirect('https://openapi.alipaydev.com/gateway.do?' + order_string)# 支付宝内容
def pay(order_num, total):# 应用的私钥app_private_key_string = """-----BEGIN RSA PRIVATE KEY-----MIIEpQIBAAKCAQEA2RytcQwVHDi5ra/xpHm2rQ0TjXEDBNZYmUVmNbyd12hnbCBNUAP3m/6QgzeSe2Y7wPKKmp1mb+BVVKZQua8VoSohRlRE59GyK1f0IPCR1Tusjwkuw+E6dsarPRCSNJ1knJEsyjBwDCsG/tx/nUHbhrbWss0OoGb+h3TMjMWT82fXX3G0aJpA+uRe6n18iR/6q/1vgWA1HarcTZfGlTAOox3/fj7bDluOr9cFCTVNPLahN3P/9qvwCQGE7pouBB8qHkAhutTV3wG8qf8BW2tMag0F9Yb82yvQVnbt1AARh36VrUGV555vWWkOaSrGViJhKKpZcftiQmgbH6VUw1iAtwIDAQABAoIBAQCj6ViwTlTpt5HHJVwjtphJ0eN/F2EWF9VP8esWis4HwJTENybnT/dyWCA2UJBQhYB7TSGDVW3u7Mi/Xcj4Rsznnez9McXL1q7StlZjP/x5pdHDM0WRMMt4vMivE4GuI13ALoJIK4WMSje/1iyqRvw7mnJBDzsJsnhbP7zmUow+aDTSx5uDHqwvZuGzAvpAvkexVqIouTOJ+gkcaJAcoQpiLuvuldV+/CIdhH55SFAM5FQH8MXhs4wFeX8+9keJ+DahF37Tl3Dk90lzdeOV/NBbHdhqjdh9WthSsO3S6MUxx2vIAFLZ9BXKsPE873JePAqY5vUO8XwDeUHCMV7wYX4RAoGBAPlNpKVnWapwwh+Ri1kJz3NZBDAJ7ik0g5plUAKKBdzX3LZYcqTjilmgRIBOub0sDx76rTUd40cbiv9XOa6qXcyNHSer+yEMa0v5gRayEBffId9xoVandnJdGcDRWh2IovtVr7cQWwYtTJCCoG0N2qSShnwoiqnnE2ORbJ19SkZNAoGBAN7xqwsJr1tjzJSq43Aa8jwtvV3Pcs+YqH+uzHdebfK8sEc0a7Hvk57Uc2w0a3mahOu79cX7FIXSX9MrC7vv4slbC/vfptKSM4VsSphn2eT6G20rZjp+UjwOPWTz4OfC5ewS5lOjP8+fycUdyPfjZ80I9C5NWVwUEVr0L2riwO0TAoGBAJ/g8D73CaTpjUTLhQ8D4Jt7sdjQ9YBNYjyozmfidiIL+UqjbFpcZkRWKLgURL+RutzGLEBNO41Fl51rJd3i+iaNNO5VN8cY/NKLXwLcDMASY9m1OJ+m46oyFKr4V49rKgJ/ECIZhhZvBJQEgbeOU/KI2WBUa6DMRT3sbDiPugtdAoGAFaYqEdxS5vD+AMHHbC9xrl5SsTVf1MDiO+PhfwXwb03bYE661oCJOTcwLiW4+goDNlD+QMds6sHPBFZ9wTY+M4df1omVTYVc82vcoogTJKUU3LkGKE/z9Fj9pTv5bwgCA7aiHyUPIT5G/Zky1r+CaOqhq41fTA220bo8kIiMa3kCgYEAgDRVKzhz1ueqIOsA6XcdHlhpSoUKmzwHeE2sD00kWVyQkKGN2/TczZ+h0seEM20M3C7tRVJjaN5rgfNg7biEtCxqvQgiWKchb8wfPm6Tg7Zlw9njeKBbQzq7YkO7iCLIKZoygTqx65b/gYx8QjSeZ1EoS532ndDztx+RmITuJbE=-----END RSA PRIVATE KEY-----"""# 支付宝的公钥alipay_public_key_string = """-----BEGIN PUBLIC KEY-----MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAubtn6v/fRxicLhOdTijJ0xqXLZflHjvq31Y13NId7Xjs5w7vHiddCrml0k69iD0COo/1Ke8AJLVajwh9Zj/ZtAjjRjiK9cRW4SgTRlTm3Bnbqm5aZucmunOwgJfeCohgLTkFIwOOPbSb93u+nwvMTWAayiblm3aHGmZuBxb0EsUP5IBg1XCs26Am5gV8nWZ87cxDrF1C36i94kbDpmhFubicEIw+NMRuyKmWObrTZmxugv2AcM4lgM1LVz+Qa4H1mj0KQl4CjRHMlImSrznsvWq+5HUbIxMA7VUStA+mpJHFG4azb1jWOlatK984vXXgfLqRSH/gu2lkRA9gEGc36wIDAQAB-----END PUBLIC KEY-----"""alipay = AliPay(appid="2016092800613099",app_notify_url=None, # 默认回调urlapp_private_key_string=app_private_key_string,# 支付宝的公钥,验证支付宝回传消息使用,不是你自己的公钥,alipay_public_key_string=alipay_public_key_string,sign_type="RSA2", # RSA 或者 RSA2debug=True # 默认False)# 电脑网站支付,需要跳转到https://openapi.alipay.com/gateway.do? + order_stringorder_string = alipay.api_alipay_trade_page_pay(out_trade_no=order_num, # 订单idtotal_amount=total, # 支付金额,注意是字符串类型的subject='全球水果生鲜商城', # 主题return_url=None,notify_url=None # 可选, 不填则使用默认notify url)# 返回支付页面网址return 'https://openapi.alipaydev.com/gateway.do?' + order_string# 支付宝支付
def alipay_method(request):# 1.获取提交过来的 订单号和总价钱order_num = request.GET.get('order_num') # 订单号total = request.GET.get('total') # 商品总价# 2.调用支付宝url = pay(order_num, total)# 3.返回页面return redirect(url)
Django短信和邮箱注册、支付宝沙箱的使用相关推荐
- 016:Django商城短信和邮箱注册
本章知识点 1.发送邮件验证码 2.发送短信验证码 3.基于django的短信和邮件注册 知识点讲解 1.发送邮件 Smtp:轻量级邮件发送协议,邮件的发送和接收人.我们今天采用163邮箱的smtp服 ...
- IFTTT的简单使用-转发安卓手机的短信到邮箱
我相信大家自己摸索一下也可以玩转起来这个小工具. 背景: IFTTT是if this than that 的缩写,它其实是一种设计理念,当然也是我们现在要使用的软件的名字.在我初步使用看来它是一种图形 ...
- Android之调取本地通讯录、发送短信、邮箱、微信发送
前言:在我们开发中会遇到一些信息发送开发需求,我们那时就会用到我们要选择我们要发送的客户对象.选择发送的方式如短信.邮箱.微信等等方式来进行信息的发送. 如下str为要发送的内容,account 为我 ...
- 如何使用短信验证码完成注册功能
如何使用短信验证码完成注册功能 一. MD5加密工具类 import java.security.MessageDigest; import java.security.NoSuchAlgorithm ...
- 手机短信验证码一键注册登录功能开发 1
1. 首先根据业务分析, 先要在前端填写我们的手机号, 发送短信验证码给我们的用户 对于我们后端来说, 发送验证码就是我们要开发的接口, 手机号就是我们传入的参数,然后就可以编写相应的代码了 @Api ...
- Django短信接入
通常情况下给,我们在注册时需要填写手机号并验证,这种情况就需要我们通过短信发送一个验证码给您,然后您在有效时间内通过验证码注册成功. 前后端分离的状态下,短信接入时,因为后端需要通过用户提交的验证码需 ...
- 子弹短信新发布,支付宝即将入驻
2019独角兽企业重金招聘Python工程师标准>>> 8月20日锤子科技的新品发布会上,除了坚果pro2s新手机的发布外,罗永浩还向众人展示了一款新的社交产品--子弹短信,其功能类 ...
- 使用短信登录和注册的流程
现在各个网站普遍使用的登录认证方式是使用短信认证登录,并且在用户与服务器交互的过程中这部分功能需要被多次调用,所以在项目中不可避免地要包括这一部分,学习之后,在此记录其流程: 实现短信认证登录可以有两 ...
- 美橙互联短信服务——发送注册短信并验证
接口层 package com.demo.service;import com.demo.common.JsonResult;public interface SendService {/*** 发送 ...
最新文章
- java post 500_Post请求form-data格式时请求返回500的问题
- python简单代码画图-Python竟能画这么漂亮的花,帅呆了(代码分享)
- 利用freopen()函数和fc命令简化程序调试
- 神策数据产品演进及行业延展实践
- 图形驱动程序和显卡驱动什么区别_什么是核心显卡,核心显卡和集成显卡的区别...
- JavaScript那些事儿(1):对比JavaScript和jQuery的Dom操作
- python seaborn 热图 值对应颜色_基于行值的seaborn热图配色方案
- LeetCode MySQL 612. 平面上的最近距离
- 在外企和大厂都实习过是一种什么体验?
- es6 async函数实例:按顺序完成异步操作
- SQL学习--Select(一)TOP、派生表、连接、谓词
- java实现线性顺序表
- Djang(在前端仿DjangoAdmin同样效果)
- 19年6月英语六级第二套听力单词
- ps 毛发 边缘_PS技巧:毛发抠图调整边缘法
- 使用TMS320F28335控制四位共阳数码管
- python橙色_如何自定义橙色Firefox菜单按钮的外观
- GPS授时系统(北斗授时设备)应用及案例
- matlab错误: 服务器出现意外情况。
- 使用Eclipse的几个必须掌握的快捷方式(能力工场小马哥收集)
热门文章
- 股指期货到底平衡么(股指期货会强平么)
- Headless CMS - 打破“设计优先”的怪圈
- HadoopWindows下客户端环境配置
- 计算机网络设计校园大楼网络,计算机网络东区学生宿舍楼校园网规划及设计.docx...
- js 获取日期,获取今天,昨天,前天,两天内,三天内,四天内,五天内 日期函数
- 教你用ps如何将图片、文字做出模糊斑驳的作旧效果
- 《13+1体系-打造持续健康的组织》读书笔记
- 《Windows》Windows系统的日期和时间设置
- 星辰小队针对于软件“星遇”的第二次10天冲刺——第3天
- 『VQA认知』如何理解Bias?