当前位置: 首页 > news >正文

河南网站seo怎么修改网站标题

河南网站seo,怎么修改网站标题,深圳系统开发高端网站建设,深圳市住房和建设局网站住房保障服务5、短信验证码 1、注册容联云账号#xff0c;登录并查看开发文档#xff08;以下分析来自接口文档#xff09; 2、开发文档【准备1】#xff1a;请求URL地址1.示例#xff1a;https://app.cloopen.com:8883/2013-12-26/Accounts/{}/SMS/TemplateSMS?sig{}ACCOUNT SID# s…5、短信验证码 1、注册容联云账号登录并查看开发文档以下分析来自接口文档 2、开发文档【准备1】请求URL地址1.示例https://app.cloopen.com:8883/2013-12-26/Accounts/{}/SMS/TemplateSMS?sig{}ACCOUNT SID# sig使用MD5加密账户Id 账户授权令牌 时间戳【准备2】请求头headersAccept:application/xml;Content-Type:application/xml;charsetutf-8;Content-Length:256; Authorization: # 使用Base64编码账户Id 冒号 时间戳【准备3】请求体datato 短信接收端手机号码集合appId 应用Id官网控制台应用列表获取templateId 模板Id测试模板id是1。datas 补充模板短信中的内容[验证码 | 几分钟输入]经过对接口文档分析最终需要准备1.POST请求的地址url2.POST请求的请求头headers3.POST请求的请求体datahttps://app.cloopen.com:8883/2013-12-26/Accounts/{}/SMS/TemplateSMS?sig{}容联云 ACCOUNT SID2c94812dgad3018872722dec086d (主账户ID) AUTH TOKEN 222*******e929查看 (账户授权令牌) Rest URL(生产)https://app.cloopen.com:8883 AppID(默认)2c948zdfe334gg8872722f1b0874未上线 (APP TOKEN 请到应用管理中获取) 鉴权IP #关闭未认证情况下开启无法发短信设计添加接口路由 #user/urls.py# 短信验证:v1/users/sms/codepath(sms/code, views.sms_view),设计短信发送工具 #utils/sms.py 对接容联云短信平台,实现发送短信验证码import random import time import base64 import requests from hashlib import md5class YunTongXunAPI:def __init__(self, accountSid, authToken, appId, templateId):差异化的内容做成应用:param accountSid: 账号id,控制台:param authToken: 授权令牌,控制台:param appId: 控制台:param templateId: 短信模板,测试为1self.accountSid accountSidself.authToken authTokenself.appId appIdself.templateId templateIddef get_url(self):生成url地址post_url https://app.cloopen.com:8883/2013-12-26/Accounts/{}/SMS/TemplateSMS?sig{}.format(self.accountSid, self.get_sig())return post_urldef get_headers(self):获取请求头# 使用Base64编码(账户Id冒号时间戳)s self.accountSid : time.strftime(%Y%m%d%H%M%S)auth base64.b64encode(s.encode()).decode()headers {Accept: application/json;,Content-Type: application/json;charsetutf-8;,# Content-Length: 256;, #request模块会自动添加Authorization: auth}return headersdef get_body(self, phone, code):请求体data {to: phone,appId: self.appId,templateId: self.templateId,datas: [code, 3]}return datadef run(self, phone, code):程序入口函数url self.get_url()headers self.get_headers()body self.get_body(phone, code)# html: {statusCode:000000}html requests.post(urlurl, headersheaders, jsonbody).json()#print(html)#未添加测试账号 {statusCode: 111188, statusMsg: 【账号】主账户绑定的测试号码个数为零}#添加测试账号{statusCode: 000000, templateSMS: {smsMessageSid: fa9de45f66ca4f5ca76833b9005b10e4, dateCreated: 20230602224219}}return htmldef get_sig(self):功能函数:生成sig使用MD5加密(账户Id账户授权令牌时间戳)s self.accountSid self.authToken time.strftime(%Y%m%d%H%M%S)m md5()m.update(s.encode())return m.hexdigest().upper()if __name__ __main__:config {accountSid: 2c94812dgad3018872722dec086d,authToken: 22205d59b81465abbd26cf16e929,appId: 2c948zdfe334gg8872722f1b0874,templateId: 1}ytx YunTongXunAPI(**config)code random.randint(1000, 9999)ytx.run(17723452345, code)#运行查看是否有短信收到设计功能路由调用 #浏览器点击获取验证码查看xhrheaders里请求地址 http://127.0.0.1:8000/v1/users/sms/codepayload里{phone:}: #user/urls.py# 短信验证:v1/users/sms/codepath(sms/code, views.sms_view),#dashopt/settings.py ... #############短信验证配置开始############ MSG_CONFIG {accountSid: 2c94811c88518872722dec086d,authToken: 2220db32a697754048bb97e929,appId: 2c94811c8853872722f1b0874,templateId: 1}设计发送功能 #user/views.py ... from utils.sms import YunTongXunAPIdef sms_view(request):对接容联云实现短信验证码发送1.获取请求体数据2.生成短信验证码3.调用容联云接口发送短信data json.loads(request.body)phone data.get(phone)code random.randint(1000, 9999)smsapi YunTongXunAPI(**settings.MSG_CONFIG)smsapi.run(phone,code)return JsonResponse({code: 200, data: 发送成功})#http://localhost:7000/dadashop/templates/register_sms.html 发送验证是否成功调整下 #user/views.py ... from utils.sms import YunTongXunAPIdef sms_view(request):对接容联云实现短信验证码发送1.获取请求体数据2.生成短信验证码3.调用容联云接口发送短信data json.loads(request.body)phone data.get(phone)code random.randint(1000, 9999)sms_html send_msg(phone,code)if sms_html.get(statusCode) 000000:return JsonResponse({code: 200, data: 发送成功})return JsonResponse({code: 10110, error: {message: 发送失败}})def send_msg(phone,code):smsapi YunTongXunAPI(**settings.MSG_CONFIG)sms_html smsapi.run(phone,code)return sms_html发送并带有验证的功能 设计redis缓存 #dashopt/settings.py ... CACHES {# 缓存邮件激活随机数default: { ...},msg_code: {BACKEND: django_redis.cache.RedisCache,LOCATION: redis://192.168.1.11:6379/2,# TIMEOUT: None, 默认300sOPTIONS: {CLIENT_CLASS: django_redis.client.DefaultClient,PASSWORD: 123456}}, }放入redis #user/views.py ... MSG_CACHE caches[msg_code] ... def sms_view(request):对接容联云实现短信验证码发送1.获取请求体数据2.生成短信验证码3.调用容联云接口发送短信data json.loads(request.body)phone data.get(phone)code random.randint(1000, 9999)# 1.redis中确认: sms_13603263409key sms_%s % phoneredis_code MSG_CACHE.get(key)if redis_code:# 3分钟之内已经发过return JsonResponse({code: 10111, error: {message:code already existed}})# 3分钟之内没有发过:sms_html send_msg(phone,code)# 2.存入redisif sms_html.get(statusCode) 000000:MSG_CACHE.set(key, code, 180)return JsonResponse({code: 200, data: 发送成功})return JsonResponse({code: 10110, error: {message: 发送失败}}) 短时间发送两次短信注意第二次发送是否成功以及redis里的数据$.ajax({type: post,url: baseUrl/v1/users,datatype: json,contentType:application/json,data: JSON.stringify({uname: $(#uname).val(),password: $(#upwd).val(),phone: $(#phone).val(),email: $(#email).val(),verify: $(#verify).val(),carts:localStorage.getItem(cart),}),success: function (data) { //成功的回调函数if (data.code 200){//window.localStorage.setItem(dashop_token, data.data.token);//window.localStorage.setItem(dashop_user, data.username);//window.localStorage.setItem(dashop_count, data.data.length);window.localStorage.setItem(dashop_token, data.data.token);window.localStorage.setItem(dashop_user, data.username);window.localStorage.setItem(dashop_count, data.carts_count);alert(注册成功);window.location.href /dadashop/templates/index.html;}else {alert(data.error.message); //返回后端message弹窗code already existed}},celery异步发送 ... from django.conf import settings from utils.sms import YunTongXunAPIapp.task def async_send_msg(phone, code): #user/views.py send_msg不用了功能函数:发送短信验证码smsapi YunTongXunAPI(**settings.MSG_CONFIG)sms_html smsapi.run(phone, code)return sms_html#user/views.py from .tasks import async_send_active_email, async_send_msg ...# 3分钟之内没有发过:celery异步# sms_html send_msg(phone,code)async_send_msg.delay(phone, code)# 2.存入redisMSG_CACHE.set(key, code, 180)return JsonResponse({code: 200, data: 发送成功})重启celery #发送短信查看celery日志查看redis存储结果...: INFO/MainProcess] Task user.tasks.async_send_msg[36ca7635-b751-4948-b257-c5d422624d82] succeeded in 0.5160000000032596s: 设计验证 抓包请求 #注册 查看xhr请求 Request URL: http://127.0.0.1:8000/v1/usersPayload: {uname: , password: , phone: 17723452345, email: , verify: 11111, carts: null}#user/views.py ... def users(request):注册模块视图逻辑# 1.获取请求体数据data json.loads(request.body)uname data.get(uname)password data.get(password)phone data.get(phone)email data.get(email)# 获取前端提交过来的短信验证码# 校验短信验证码verify data.get(verify)key sms_%s % phoneredis_code MSG_CACHE.get(key)if verify ! str(redis_code): # str 注意数据类型return JsonResponse({code: 10112, error: {message: code wrong}}) ...#注册验证 http://localhost:7000/dadashop/templates/register_sms.html OAuth 2.0 授权码模式authorization code 广泛使用其他了解 #微博 微连接创建网页应用 https://open.weibo.com/apps/911505717/info/advanced 应用信息高级信息OAuth 2.0授权回调页 编辑回调页urlhttp://localhost:7000/dadashop/templates/callback.html#查看OAuth 2.0接口文档 https://open.weibo.com/wiki/%E5%BE%AE%E5%8D%9AAPI%E5%BE%AE%E5%8D%9A --》微博API 涉及到url编码问题浏览器里带中文的部分通过urllib编码使用如下 from urllib import parse date parse.urlencode(%E5%BE%AE%E5%8D%9A) print(data)#授权页示例,换成自己的client_id和上面设置的回调url看是否进入授权页面 https://api.weibo.com/oauth2/authorize?client_id123456redirect_urihttp://www.example.com/responseresponse_typecode#回调成功后查看url里是否多了code信息 http://www.example.com/response?codeCODE请求授权 接口功能准备 #utils/weiboapi.py第三方微博登录接口APIimport requests from urllib import parse from django.conf import settingsclass OAuthWeiboAPI:def __init__(self, client_id, client_secret, redirect_uri):self.client_id client_idself.client_secret client_secretself.redirect_uri redirect_uridef get_grant_url(self):获取微博授权登录页的地址# https://api.weibo.com/oauth2/authorize?client_id123456redirect_urihttp://www.example.com/responseresponse_typecodebase_url https://api.weibo.com/oauth2/authorize?params {client_id: self.client_id,redirect_uri: self.redirect_uri,response_type: code}return base_url parse.urlencode(params)if __name__ __main__:config {client_id: 22342872,client_secret: e2a52dfasdg5d4b9185db1430735,redirect_uri: http://localhost:7000/dadashop/templates/callback.html}weibo_api OAuthWeiboAPI(**config)grant_url weibo_api.get_grant_url()print(grant_url)# 将打印的url放到浏览器里看是否跳到微博授权页抓包路由配置 #抓包路由 http://localhost:7000/dadashop/templates/login.html http://127.0.0.1:8000/v1/users/weibo/authorization #user/urls.py ...# 微博授权登录页: v1/users/weibo/authorizationpath(weibo/authorization, views.OAuthWeiboUrlView.as_view()),功能函数设计 #user/views.py ... from utils.weiboapi import OAuthWeiboAPIclass OAuthWeiboUrlView(View):def get(self, request):生成授权登录页的地址,返给前端由前端跳转到授权登录页[window.location.href]weibo_api OAuthWeiboAPI(**settings.WEIBO_CONFIG)oauth_url weibo_api.get_grant_url()# 返回响应result {code: 200, oauth_url: oauth_url}return JsonResponse(result)配置试图函数使用的WEIBO_CONFIG #dashopt/settings.py ... #############微博登录配置开始############ WEIBO_CONFIG {client_id: 9134235717,client_secret: a6dbdca9b1b185bd762f6b8091,redirect_uri: http://localhost:7000/dadashop/templates/callback.html}前端跳转实现了解 //login.html ...//异步获取微博登陆地址$.ajax({type:GET,url:baseUrl/v1/users/weibo/authorization,success:function(response){if(response.code200){window.location.hrefresponse.oauth_url//跳转后端返回的oauth_url}else{alert(服务器异常)}跳转获取授权码 #注册授权查看是否跳转 http://localhost:7000/dadashop/templates/callback.html #url跳转授权回调页 http://localhost:7000/dadashop/templates/callback.html?code1b710d828a02c3e506bedce5#xhr里自动请求到下一个路由前端已经设计好了需要进行下一步功能 Request URL: http://127.0.0.1:8000/v1/users/weibo/users?code1b710d828a02c3e506bedce5前端跳转实现了解 //callback.html ... scriptvar uid var querystring location.search //获取查询部分 code1b710d...window.onloadfunction(){$.ajax({url: baseUrl/v1/users/weibo/usersquerystring,type: get,dataType: json,success: function (res) {if (res.code 200) {//先清理本地存储再跳转到主页window.localStorage.clear();window.localStorage.setItem(dashop_token, res.token);window.localStorage.setItem(dashop_user, res.username);$(.query).css({display:block})$(.success).css({display:none})//none 隐藏了success form_box注册操作$(.form_box).css({display:none})setTimeout((){window.location.hrefindex.html//转到主页},3000) // 3秒等待}else if(res.code 201){$(.query).css({display:none})$(.success).css({display:none})$(.form_box).css({display:block})// access_token res.access_tokenuid res.uid}else{alert(res.error)}}})获取授权token https://open.weibo.com/wiki/Oauth2/access_token HTTP请求方式POST请求参数 参数必选类型说明client_idtruestring第三方应用在微博开放平台注册的APPKEY。client_secrettruestring在微博开放平台注册的应用所对应的AppSecret。grant_typetruestring请求的类型需填写 authorization_code。codetruestring调用第一步 authorize 接口所获得的授权 code。redirect_uritruestring授权回调地址传的值需与在开放平台网站填写的回调地址一致设置填写位置“我的应用应用信息高级信息”。 配置获取的路由 #user/urls.py #自动跳转需要的路由 ...# 微博登录[获取授权令牌access_token]:v1/users/weibo/userspath(weibo/users, views.OAuthWeiboView.as_view()),获取toekn功能 #user/views.py ... import requestsclass OAuthWeiboView(View):def get(self, request):生成授权登录页的地址,返给前端由前端跳转到授权登录页[window.location.href]# 1.获取code[查询字符串]code request.GET.get(code)if not code:return JsonResponse({code: 10112, error: Not code})# 2.post请求post_url https://api.weibo.com/oauth2/access_tokenpost_data {client_id: settings.WEIBO_CONFIG[client_id],client_secret: ab504366dbb185bd762f6b8091,code:code,grant_type:authorization_code,redirect_uri:http://localhost:7000/dadashop/templates/callback.html,}access_html requests.post(urlpost_url,datapost_data).json()print(---------------get access token---------)print(access_html)return JsonResponse({code: 200})#浏览器里重新微博登录下授权3秒等待再跳转到主页 见上面的前端跳转实现了解 xhr请求 Request URL: http://127.0.0.1:8000/v1/goods/index #需设计#终端查看获得的token ....GET /v1/users/weibo/authorization HTTP/1.1 200 189 ---------------get access token--------- {access_token: 2.00mytczH0HRagz1699aJeq4NC, remind_in: 157679999, expires_in: 157679999, uid: 73207972, isRealName: true}优化到工具类里 #utils/weiboapi.py import requests from django.conf import settings #... class OAuthWeiboAPI: #...def get_access_token(self, code):获取access_token接口post_url https://api.weibo.com/oauth2/access_tokenpost_data {client_id: settings.WEIBO_CONFIG[client_id],client_secret: settings.WEIBO_CONFIG[client_secret],grant_type: authorization_code,code: code,redirect_uri:settings.WEIBO_CONFIG[redirect_uri]}access_html requests.post(urlpost_url, datapost_data).json()# 获取access_token成功if access_html.get(access_token):return access_htmlraise Exception(get access token failed)#user/views.py #....# 2.post请求try:weibo_api OAuthWeiboAPI(**settings.WEIBO_CONFIG)access_html weibo_api.get_access_token(code)except Exception as e:print(e)return JsonResponse({code: 10113, error: weibo server is busy})# 成功获取到access_tokenprint(---- get access token success ----)print(access_html)return JsonResponse({code: 200}) 验证 #重新注册查看跳转token打印准备设计表入库token {access_token: 2.00mytczH0HRagz1699aJeq4NC, remind_in: 157679999, expires_in: 157679999, uid: 73207972, isRealName: true }token入库表设计 #user/models.py ... class WeiboProfile(BaseModel):微博用户表# 外键 和用户表一对一# 因为微博数据存入时可能还没有正式用户设置外键允许为nulluser_profile models.OneToOneField(UserProfile, on_deletemodels.CASCADE, nullTrue)# db_index:因为后期大量查询wuid models.CharField(verbose_name微博uid, max_length10, db_indexTrue, uniqueTrue)access_token models.CharField(verbose_name微博授权令牌, max_length32)class Meta:db_table user_weibo_profile python manage.py makemigrationspython manage.py migrate 前端根据返回状态码返回页面 //callback.html ... scriptvar uid var querystring location.search //获取查询部分 code1b710d...window.onloadfunction(){$.ajax({url: baseUrl/v1/users/weibo/usersquerystring,type: get,dataType: json,success: function (res) {if (res.code 200) {//先清理本地存储再跳转到主页window.localStorage.clear();window.localStorage.setItem(dashop_token, res.token);window.localStorage.setItem(dashop_user, res.username);//block显示none隐藏 根据返回的201 200 跳转页面 $(.query).css({display:block})// 请稍后$(.success).css({display:none})//登录成功//none 隐藏了success $(.form_box).css({display:none})// 输入登录名、手机号信息绑定setTimeout((){window.location.hrefindex.html//转到主页},3000) // 3秒等待}else if(res.code 201){$(.query).css({display:none})$(.success).css({display:none})$(.form_box).css({display:block})// access_token res.access_tokenuid res.uid}else{alert(res.error)}}})#user/views.py from .models import Address, WeiboProfile #.... # 2.post请求try:weibo_api OAuthWeiboAPI(**settings.WEIBO_CONFIG)access_html weibo_api.get_access_token(code)except Exception as e:print(e)return JsonResponse({code: 10113, error: weibo server is busy})# 成功获取到access_tokenprint(---- get access token success ----)print(access_html)# 获取wuid和access_tokenwuid access_html.get(uid)access_token access_html.get(access_token)微博表中查看该wuid是否存在情况1:用户第一次微博登录[201]情况2:用户之前扫码登录过2.1 已经和正式用户绑定过[200]2.2 在绑定注册页不填写用户名手机号信息关闭页面[201]200响应:{code:200, username:xxx, token: token}201响应:{code201,uid: wuid}try:weibo_user WeiboProfile.objects.get(wuidwuid)except Exception as e:# 用户第一次扫码登录WeiboProfile.objects.create(wuidwuid, access_tokenaccess_token)# 返回201,到绑定注册页return JsonResponse({code: 201, uid: wuid})else:# 情况1:已和正式用户绑定# 情况2:扫过码,但是并未绑定user weibo_user.user_profileif user:token make_token(user.username)result {code: 200,username: user.username,token: token}return JsonResponse(result)else:result {code: 201,uid: wuid}return JsonResponse(result)验证 #登录页注册再次提交授权登录验证 因第一次返回201 进入绑定手机号邮箱页面 http://localhost:7000/dadashop/templates/callback.html?code3743ffa4c057f33c26d1e85fc36c23e3#补充信息提交 Request URL: http://127.0.0.1:8000/v1/users/weibo/users 405 Method Not AllowedPayload: {uid: 736547972,username: user03,password: 123456,phone: 17723452345,email: 65733058qq.com}设计提交试图,获取数据完成绑定设计提交功能 #user/views.py class OAuthWeiboView(View): #...def post(self, request):绑定注册视图逻辑1.获取请求体数据2.存入用户表[UserProfile]3.两个用户绑定[更新外键-user_profile]4.组织数据返回data json.loads(request.body)username data.get(username)password data.get(password)email data.get(email)phone data.get(phone)uid data.get(uid)# 处理密码m md5()m.update(password.encode())pwd_md5 m.hexdigest()# 创建正式用户[create]并和微博用户绑定[update]# 事务with transaction.atomic():sid transaction.savepoint()try:# 创建正式用户[UserProfile]user UserProfile.objects.create(usernameusername, passwordpwd_md5, emailemail, phonephone)# 更新外键[WeiboProfile]weibo_user WeiboProfile.objects.get(wuiduid)weibo_user.user_profile userweibo_user.save()except Exception as e:print(bind user error, e)# 回滚transaction.savepoint_rollback(sid)return JsonResponse({code: 10114, error: database error})# 提交事务transaction.savepoint_commit(sid)# 1.发送激活邮件verify_url get_verify_url(username) #下面重构功能函数async_send_active_email.delay(email, verify_url)# 2.签发tokentoken make_token(username)# 3.组织数据返回result {code: 200,username: username,token: token}return JsonResponse(result)功能函数:生成邮件激活链接 #user/views.pydef get_verify_url(uname):功能函数:生成邮件激活链接# http://127.0.0.1:7000/dadashop/templates/active.html?codexxx# code: base64(1016_username)code_num %d % random.randint(1000, 9999)code_str %s_%s % (code_num, uname)code base64.urlsafe_b64encode(code_str.encode()).decode()# 存入redis[key-value] email_active_usernamekey email_active_%s % unameCODE_MSG.set(key, code_num, 3600 * 24 * 3)# 生成激活链接verify_url http://127.0.0.1:7000/dadashop/templates/active.html?code%s % codereturn verify_url再次注册验证 #登录注册授权绑定邮箱信息 收件箱二、微博登录流程梳理 微博开放平台 注册微博开放平台用户并进行实名认证 创建应用 控制台-应用基本信息App Key 、App Secret控制台-应用高级信息设置回调地址 关于回调地址 回调地址不能出现127.0.0.1,必须为域名[localhost] 第三方微博登录功能梳理 用户登录页点击微博登录xhr请求到后端索要微博授权登录页地址 后端视图函数中生成微博授权登录页地址【微博接口文档】返给前端 前端重定向到微博授权登录页地址【login.html】 window.location.hrefresponse.oauth_url 用户输入微博账号和密码 或者 扫码确认授权并登录 微博校验微博账号和密码信息如果正确则跳转到回调地址【微博开放平台设置】在回调地址中添加授权码的查询参数 前端移花接木把授权码code从回调地址【7000端口】取出来放到后端路由【8000端口】发送xhr请求 var querystring location.search $.ajax({url:baseUrlv1/users/weibo/users querystring })后端获取授权码[request.GET.get()]向微博发请求【微博开发文档】获取授权令牌【access_token】 {“uid”:“xxx”,“access_token”:“xxx”,…} 后端获取到授权令牌后创建微博表并存储数据并执行绑定注册流程 后端和前端协商状态码 200: 说明用户之前已经使用微博登录过并和正式用户做了绑定直接签发token并跳转到主页【index.html】 201:说明用户之前并没有和正式用户绑定过跳转到绑定注册页面 前端根据状态码决定页面跳转 200跳转到index.html 201跳转到绑定注册页面【让用户填写注册相关信息】 用户填写注册信息点击提交发送xhr请求到后端 后端把该用户存入正式用户表并和当前微博用户做好关联 access_token使用服务器端获取到该用户的access_token后可以在微博开放平台-我的应用-接口管理获取该用户的相关资源【微博开放出来的资源】 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qV8dt0GN-1688875149467)(project-pictures/09_第三方微博登录流程图.png)] pip切换源 sudo pip3 install 模块名 -i https://pypi.tuna.tsinghua.edu.cn/simple/1.阿里云 http://mirrors.aliyun.com/pypi/simple/ 2.豆瓣http://pypi.douban.com/simple/ 3.清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/ 4.中国科学技术大学 http://pypi.mirrors.ustc.edu.cn/simple/ 5.华中科技大学http://pypi.hustunique.com/ pip3 freeze | grep -i redis pip3 install django_redis -i https://pypi.tuna.tsinghua.edu.cn/simple/离线安装- 下载安装包[官网] .tar.gz- 解压tar -zxvf xxx.tar.gz- 到解压目录寻找setup.py [README文件中有安装说明]- 安装sudo python3 setup.py install python manage.py shellfrom django.core.cache import cachecache.set(zhaoliying,1016) True # redis 里1号库查看验证默认过期的事件是300s :说明用户之前并没有和正式用户绑定过跳转到绑定注册页面 前端根据状态码决定页面跳转 200跳转到index.html 201跳转到绑定注册页面【让用户填写注册相关信息】 用户填写注册信息点击提交发送xhr请求到后端 后端把该用户存入正式用户表并和当前微博用户做好关联 access_token使用服务器端获取到该用户的access_token后可以在微博开放平台-我的应用-接口管理获取该用户的相关资源【微博开放出来的资源】 [外链图片转存中…(img-qV8dt0GN-1688875149467)] pip切换源 sudo pip3 install 模块名 -i https://pypi.tuna.tsinghua.edu.cn/simple/1.阿里云 http://mirrors.aliyun.com/pypi/simple/ 2.豆瓣http://pypi.douban.com/simple/ 3.清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/ 4.中国科学技术大学 http://pypi.mirrors.ustc.edu.cn/simple/ 5.华中科技大学http://pypi.hustunique.com/ pip3 freeze | grep -i redis pip3 install django_redis -i https://pypi.tuna.tsinghua.edu.cn/simple/离线安装- 下载安装包[官网] .tar.gz- 解压tar -zxvf xxx.tar.gz- 到解压目录寻找setup.py [README文件中有安装说明]- 安装sudo python3 setup.py install python manage.py shellfrom django.core.cache import cachecache.set(zhaoliying,1016) True # redis 里1号库查看验证默认过期的事件是300s
http://www.sadfv.cn/news/145122/

相关文章:

  • 人才网站建设cms大型网站频道的建设需多人协同开发
  • 国外游戏商城网站欣赏自己如何做链接推广
  • 抚州制作网站哪家公司好葫芦岛住房和城乡建设厅网站
  • iis6.0不能新建网站智慧团建官方网站登录入口
  • 手机网站建站软件做网站服务好
  • 如何用群晖做自己的网站怎么弄自己的网址
  • 建设好网站外链有哪些方式公司在线网站制作系统
  • 移动商城网站开发抖音代运营价格
  • 高速建设材料在哪个网站购买公司网站建设需推广
  • idea 网站开发官网建设公司有哪些
  • 东莞茶山网站建设选择一个网站进行优化
  • 广州建网站的网络公司免费制作企业宣传视频app
  • 青羊区建设局网站企业注册登记流程
  • 做坏事网站南京网站建设公司有哪些
  • txt电子书下载网站推荐广告公司简介100字
  • 上海网站建设 app开发手机能创建网站吗
  • 建瓯企业网站建设网站制作前的图片路径
  • 河南网站建设哪个公司做得好网站友情链接模板
  • 建设银行官网首页网站购纪念币阿里云网站更换域名
  • 做外贸网站公司哪家好做软件赚钱还是做网站赚钱
  • 浙江龙泉建设局网站织梦网站首页自动更新
  • 天津网站排名提升多少钱wordpress百度自动推送安装失败
  • 常州高端网站建设百度竞价推广登录入口
  • 做平台网站一般有php还是jsvue cms 网站开发
  • o2o网站建设流程东莞市企业招聘信息网
  • 上海模板网站建站公司网站有收录没排名
  • 新乡手机网站建设公司h5页面生成工具
  • 做网站大约多少钱建筑人才网河南省2022年3月安全员
  • 在什么网站能帮人做ppt网站admin目录名怎么改
  • 博物馆网站建设的根本意义长沙医疗网站建设