這一節(jié)我們將django的后端微信接入部分
涉及到的知識(shí)點(diǎn)有?跨域?服務(wù)器請(qǐng)求緩存?路由配置
首先要?jiǎng)?chuàng)建一個(gè)django項(xiàng)目 命令行輸入
django-admin.py
django-admin.py?startproject?你的項(xiàng)目名稱
項(xiàng)目創(chuàng)建成功會(huì)出現(xiàn)紅框中的文件夾
settings.py?這是django的配置文件
unit.py?這是全局處理的方法
urls.py 這是路由配置文件
項(xiàng)目基礎(chǔ)框架創(chuàng)建完成后我們開始創(chuàng)建app項(xiàng)目
創(chuàng)建一個(gè)app需要在settings.py里配置app名稱
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',?
???"wxTokken",?#這里就是我們創(chuàng)建的app名稱????
]
python manage.py startapp app名稱
我這里創(chuàng)建的是wxTokken
這里需要新建一個(gè)urls.py文件來寫路由
views.py?這個(gè)文件來寫我們的接口
其他文件暫時(shí)沒用
app創(chuàng)建成功我們就配置跨域處理
控制臺(tái)輸入
pip?install?django-cors-headers
然后在settings.py里配置
INSTALLED_APPS =(
...
' corsheaders ',
... )
MIDDLEWARE = [
... # 跨域請(qǐng)求中間件
'corsheaders.middleware.CorsMiddleware',
'django.middleware.common.CommonMiddleware'婴氮,
...
]
在settings文件最后面添加如下所有代碼
# 跨域允許的請(qǐng)求方式母债,可以使用默認(rèn)值其兴,默認(rèn)的請(qǐng)求方式為:
# from corsheaders.defaults import default_methods
CORS_ALLOW_METHODS = (
'GET',
'POST',
'PUT',
'PATCH',
'DELETE',
'OPTIONS'
)
# 允許跨域的請(qǐng)求頭概页,可以使用默認(rèn)值敬尺,默認(rèn)的請(qǐng)求頭為:
# from corsheaders.defaults import default_headers
# CORS_ALLOW_HEADERS = default_headers
CORS_ALLOW_HEADERS = (
'XMLHttpRequest',
'X_FILENAME',
'accept-encoding',
'authorization',
'content-type',
'dnt',
'origin',
'user-agent',
'x-csrftoken',
'x-requested-with',
'Pragma',
)
# 跨域請(qǐng)求時(shí)肾请,是否運(yùn)行攜帶cookie留搔,默認(rèn)為False
CORS_ALLOW_CREDENTIALS = True
# 允許所有主機(jī)執(zhí)行跨站點(diǎn)請(qǐng)求,默認(rèn)為False
# 如果沒設(shè)置該參數(shù)铛铁,則必須設(shè)置白名單隔显,運(yùn)行部分白名單的主機(jī)才能執(zhí)行跨站點(diǎn)請(qǐng)求
CORS_ORIGIN_ALLOW_ALL = True
配置完成后我們看我們新建的app文件
打開views.py文件
先引入需要的模塊
from django.shortcuts import render
import json,random,string,datetime,time,calendar,urllib,hashlib
from django.http import HttpResponse
from django.core.serializers import serialize
from django.views.decorators.csrf import csrf_exempt
from wxhoutai.unit import butesTotoJson
from django.core.cache import cache
from django.views.decorators.cache import cache_page
首先我們要獲取微信的token,需要打開網(wǎng)站
appid = "自己的appid"
secret = "自己的secret"
#獲取微信token
@cache_page(7000)
def wxToken(request):
????tokenUrl = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid="+appid+"&secret="+secret+""
????token = urllib.request.urlopen(tokenUrl).read() #使用urllib模塊打開網(wǎng)站
????token = json.loads(token.decode('utf-8')
)
#將返回的數(shù)據(jù)格式成json格式
return HttpResponse(json.dumps(token)) #返回?cái)?shù)據(jù)
方法寫完我們就需要配置路由
打開當(dāng)前文件夾里的urls.py
from django.urls import path,include
from?.?import?views?
?#獲取當(dāng)前文件夾下views文件里的所有方法
urlpatterns = [????
????path('wxToken/',views.wxToken),#這里就能點(diǎn)出我們寫的那個(gè)方法
]
這里的路由配置完成 還需要在我們?cè)谟衧ettings.py的那個(gè)文件夾下打開urls.py在配置一個(gè)路由
from django.contrib import admin
from django.urls import path,include
urlpatterns = [
????path('admin/', admin.site.urls),???
????path('wxtoken/',include('wxTokken.urls')) #添加路由 就是我們創(chuàng)建那個(gè)app文件下的urls文件
]
命令行輸入
manage.py runserver #啟動(dòng)項(xiàng)目
路由配置完成我們前端ajax就能請(qǐng)求?127.0.0.1:8000/wxtoken/wxToken/這個(gè)接口了
下節(jié)我們講調(diào)用微信jssdk等方法
前端git地址?https://gitee.com/hpr/weixingjieruQ.git
后端git地址?https://gitee.com/hpr/weixinjieruH.git
?記得給我點(diǎn)個(gè)贊哦
關(guān)注公眾號(hào)回復(fù)?微信接入 獲取全部教程哦