python学习

This commit is contained in:
2019-07-31 18:30:04 +08:00
parent f87f5ca73a
commit 165f4f3ecb
4 changed files with 175 additions and 110 deletions

204
.idea/workspace.xml generated
View File

@@ -2,25 +2,13 @@
<project version="4"> <project version="4">
<component name="ChangeListManager"> <component name="ChangeListManager">
<list default="true" id="d564f57a-9f96-4262-9481-cacdf2b8445c" name="Default" comment="python学习"> <list default="true" id="d564f57a-9f96-4262-9481-cacdf2b8445c" name="Default" comment="python学习">
<change afterPath="$PROJECT_DIR$/comm" afterDir="false" /> <change afterPath="$PROJECT_DIR$/common/libs/member/MemberService.py" afterDir="false" />
<change afterPath="$PROJECT_DIR$/common/models/member/Member.py" afterDir="false" />
<change afterPath="$PROJECT_DIR$/common/models/member/Oauth_member_bind.py" afterDir="false" />
<change afterPath="$PROJECT_DIR$/mina/sitemap.json" afterDir="false" />
<change afterPath="$PROJECT_DIR$/web/controllers/api/Member.py" afterDir="false" />
<change afterPath="$PROJECT_DIR$/web/controllers/api/__init__.py" afterDir="false" />
<change afterPath="$PROJECT_DIR$/数据库文件/food.sql" afterDir="false" />
<change afterPath="$PROJECT_DIR$/数据库文件/后台初始账户.sql" afterDir="false" />
<change afterPath="$PROJECT_DIR$/数据库文件/自动生成models.txt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/config/base_setting.py" beforeDir="false" afterPath="$PROJECT_DIR$/config/base_setting.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/mina" beforeDir="false" afterPath="$PROJECT_DIR$/mina" afterDir="false" /> <change beforePath="$PROJECT_DIR$/mina" beforeDir="false" afterPath="$PROJECT_DIR$/mina" afterDir="false" />
<change beforePath="$PROJECT_DIR$/mina/app.js" beforeDir="false" afterPath="$PROJECT_DIR$/mina/app.js" afterDir="false" /> <change beforePath="$PROJECT_DIR$/mina/app.js" beforeDir="false" afterPath="$PROJECT_DIR$/mina/app.js" afterDir="false" />
<change beforePath="$PROJECT_DIR$/mina/app.json" beforeDir="false" afterPath="$PROJECT_DIR$/mina/app.json" afterDir="false" />
<change beforePath="$PROJECT_DIR$/mina/pages/index/index.js" beforeDir="false" afterPath="$PROJECT_DIR$/mina/pages/index/index.js" afterDir="false" /> <change beforePath="$PROJECT_DIR$/mina/pages/index/index.js" beforeDir="false" afterPath="$PROJECT_DIR$/mina/pages/index/index.js" afterDir="false" />
<change beforePath="$PROJECT_DIR$/mina/pages/index/index.wxml" beforeDir="false" afterPath="$PROJECT_DIR$/mina/pages/index/index.wxml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/mina/pages/index/index.wxml" beforeDir="false" afterPath="$PROJECT_DIR$/mina/pages/index/index.wxml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/mina/project.config.json" beforeDir="false" afterPath="$PROJECT_DIR$/mina/project.config.json" afterDir="false" /> <change beforePath="$PROJECT_DIR$/web/controllers/api/Member.py" beforeDir="false" afterPath="$PROJECT_DIR$/web/controllers/api/Member.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/web/controllers/account/Account.py" beforeDir="false" afterPath="$PROJECT_DIR$/web/controllers/account/Account.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/www.py" beforeDir="false" afterPath="$PROJECT_DIR$/www.py" afterDir="false" />
</list> </list>
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" /> <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
<option name="SHOW_DIALOG" value="false" /> <option name="SHOW_DIALOG" value="false" />
@@ -30,11 +18,11 @@
</component> </component>
<component name="FileEditorManager"> <component name="FileEditorManager">
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300"> <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
<file pinned="false" current-in-tab="false"> <file pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/mina/pages/index/index.js"> <entry file="file://$PROJECT_DIR$/mina/pages/index/index.js">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="346"> <state relative-caret-position="292">
<caret line="62" column="30" lean-forward="true" selection-start-line="62" selection-start-column="30" selection-end-line="62" selection-end-column="30" /> <caret line="97" column="19" lean-forward="true" selection-start-line="97" selection-start-column="19" selection-end-line="97" selection-end-column="19" />
<folding> <folding>
<element signature="e#0#1517#0" /> <element signature="e#0#1517#0" />
</folding> </folding>
@@ -51,11 +39,11 @@
</provider> </provider>
</entry> </entry>
</file> </file>
<file pinned="false" current-in-tab="true"> <file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/web/controllers/api/Member.py"> <entry file="file://$PROJECT_DIR$/web/controllers/api/Member.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="208"> <state relative-caret-position="611">
<caret line="52" lean-forward="true" selection-start-line="52" selection-end-line="52" /> <caret line="56" column="24" lean-forward="true" selection-start-line="56" selection-start-column="24" selection-end-line="56" selection-end-column="24" />
<folding> <folding>
<element signature="e#24#65#0" expanded="true" /> <element signature="e#24#65#0" expanded="true" />
</folding> </folding>
@@ -64,10 +52,19 @@
</entry> </entry>
</file> </file>
<file pinned="false" current-in-tab="false"> <file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/common/models/member/Member.py"> <entry file="file://$PROJECT_DIR$/mina/app.js">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="93"> <state relative-caret-position="325">
<caret line="3" selection-start-line="3" selection-end-line="3" selection-end-column="26" /> <caret line="77" column="6" lean-forward="true" selection-start-line="77" selection-start-column="6" selection-end-line="77" selection-end-column="6" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/common/libs/member/MemberService.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="527">
<caret line="18" column="8" selection-start-line="18" selection-start-column="8" selection-end-line="18" selection-end-column="8" />
</state> </state>
</provider> </provider>
</entry> </entry>
@@ -93,15 +90,6 @@
</provider> </provider>
</entry> </entry>
</file> </file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/www.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="651">
<caret line="21" column="41" lean-forward="true" selection-start-line="21" selection-start-column="41" selection-end-line="21" selection-end-column="41" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false"> <file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/config/local_setting.py"> <entry file="file://$PROJECT_DIR$/config/local_setting.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
@@ -111,16 +99,11 @@
</provider> </provider>
</entry> </entry>
</file> </file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/mina/pages/index/index.json">
<provider selected="true" editor-type-id="text-editor" />
</entry>
</file>
<file pinned="false" current-in-tab="false"> <file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/mina/pages/index/index.wxml"> <entry file="file://$PROJECT_DIR$/mina/pages/index/index.wxml">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="312"> <state relative-caret-position="332">
<caret line="21" column="84" selection-start-line="21" selection-start-column="84" selection-end-line="21" selection-end-column="84" /> <caret line="19" lean-forward="true" selection-start-line="19" selection-end-line="19" />
</state> </state>
</provider> </provider>
</entry> </entry>
@@ -148,13 +131,14 @@
<find>账户</find> <find>账户</find>
<find>请输入姓名</find> <find>请输入姓名</find>
<find>getRequestHeader</find> <find>getRequestHeader</find>
<find>regFlag</find>
</findStrings> </findStrings>
<replaceStrings> <replaceStrings>
<replace>ops_render</replace> <replace>ops_render</replace>
</replaceStrings> </replaceStrings>
</component> </component>
<component name="Git.Settings"> <component name="Git.Settings">
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" /> <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$/mina" />
</component> </component>
<component name="IdeDocumentHistory"> <component name="IdeDocumentHistory">
<option name="CHANGED_PATHS"> <option name="CHANGED_PATHS">
@@ -194,17 +178,18 @@
<option value="$PROJECT_DIR$/web/interceptors/AuthInterceptor.py" /> <option value="$PROJECT_DIR$/web/interceptors/AuthInterceptor.py" />
<option value="$PROJECT_DIR$/web/templates/account/info.html" /> <option value="$PROJECT_DIR$/web/templates/account/info.html" />
<option value="$PROJECT_DIR$/web/controllers/account/Account.py" /> <option value="$PROJECT_DIR$/web/controllers/account/Account.py" />
<option value="$PROJECT_DIR$/mina/pages/index/index.wxml" />
<option value="$PROJECT_DIR$/web/controllers/api/__init__.py" /> <option value="$PROJECT_DIR$/web/controllers/api/__init__.py" />
<option value="$PROJECT_DIR$/www.py" /> <option value="$PROJECT_DIR$/www.py" />
<option value="$PROJECT_DIR$/mina/app.js" />
<option value="$PROJECT_DIR$/mina/pages/index/index.js" />
<option value="$PROJECT_DIR$/config/local_setting.py" /> <option value="$PROJECT_DIR$/config/local_setting.py" />
<option value="$PROJECT_DIR$/config/base_setting.py" /> <option value="$PROJECT_DIR$/config/base_setting.py" />
<option value="$PROJECT_DIR$/数据库文件/自动生成models.txt" /> <option value="$PROJECT_DIR$/数据库文件/自动生成models.txt" />
<option value="$PROJECT_DIR$/common/models/member/Member.py" /> <option value="$PROJECT_DIR$/common/models/member/Member.py" />
<option value="$PROJECT_DIR$/common/models/member/Oauth_member_bind.py" /> <option value="$PROJECT_DIR$/common/models/member/Oauth_member_bind.py" />
<option value="$PROJECT_DIR$/common/libs/member/MemberService.py" />
<option value="$PROJECT_DIR$/web/controllers/api/Member.py" /> <option value="$PROJECT_DIR$/web/controllers/api/Member.py" />
<option value="$PROJECT_DIR$/mina/pages/index/index.wxml" />
<option value="$PROJECT_DIR$/mina/app.js" />
<option value="$PROJECT_DIR$/mina/pages/index/index.js" />
</list> </list>
</option> </option>
</component> </component>
@@ -218,8 +203,8 @@
<packageJsonPaths /> <packageJsonPaths />
</component> </component>
<component name="ProjectFrameBounds"> <component name="ProjectFrameBounds">
<option name="x" value="1028" /> <option name="x" value="874" />
<option name="y" value="49" /> <option name="y" value="56" />
<option name="width" value="887" /> <option name="width" value="887" />
<option name="height" value="939" /> <option name="height" value="939" />
</component> </component>
@@ -247,6 +232,20 @@
<item name="common" type="462c0819:PsiDirectoryNode" /> <item name="common" type="462c0819:PsiDirectoryNode" />
<item name="libs" type="462c0819:PsiDirectoryNode" /> <item name="libs" type="462c0819:PsiDirectoryNode" />
</path> </path>
<path>
<item name="order" type="b2602c69:ProjectViewProjectNode" />
<item name="order" type="462c0819:PsiDirectoryNode" />
<item name="common" type="462c0819:PsiDirectoryNode" />
<item name="libs" type="462c0819:PsiDirectoryNode" />
<item name="member" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="order" type="b2602c69:ProjectViewProjectNode" />
<item name="order" type="462c0819:PsiDirectoryNode" />
<item name="common" type="462c0819:PsiDirectoryNode" />
<item name="libs" type="462c0819:PsiDirectoryNode" />
<item name="user" type="462c0819:PsiDirectoryNode" />
</path>
<path> <path>
<item name="order" type="b2602c69:ProjectViewProjectNode" /> <item name="order" type="b2602c69:ProjectViewProjectNode" />
<item name="order" type="462c0819:PsiDirectoryNode" /> <item name="order" type="462c0819:PsiDirectoryNode" />
@@ -320,7 +319,7 @@
<component name="PropertiesComponent"> <component name="PropertiesComponent">
<property name="SHARE_PROJECT_CONFIGURATION_FILES" value="true" /> <property name="SHARE_PROJECT_CONFIGURATION_FILES" value="true" />
<property name="WebServerToolWindowFactoryState" value="false" /> <property name="WebServerToolWindowFactoryState" value="false" />
<property name="last_opened_file_path" value="$PROJECT_DIR$/数据库文件" /> <property name="last_opened_file_path" value="$PROJECT_DIR$/common/libs/member" />
<property name="nodejs_interpreter_path.stuck_in_default_project" value="undefined stuck path" /> <property name="nodejs_interpreter_path.stuck_in_default_project" value="undefined stuck path" />
<property name="nodejs_npm_path_reset_for_default_project" value="true" /> <property name="nodejs_npm_path_reset_for_default_project" value="true" />
<property name="options.lastSelected" value="com.jetbrains.python.configuration.PythonSdkConfigurable" /> <property name="options.lastSelected" value="com.jetbrains.python.configuration.PythonSdkConfigurable" />
@@ -331,11 +330,11 @@
</component> </component>
<component name="RecentsManager"> <component name="RecentsManager">
<key name="CopyFile.RECENT_KEYS"> <key name="CopyFile.RECENT_KEYS">
<recent name="D:\order\common\libs\member" />
<recent name="D:\order\数据库文件" /> <recent name="D:\order\数据库文件" />
<recent name="D:\order" /> <recent name="D:\order" />
<recent name="D:\order\web\controllers\api" /> <recent name="D:\order\web\controllers\api" />
<recent name="D:\order\web\templates" /> <recent name="D:\order\web\templates" />
<recent name="D:\order\web\interceptors" />
</key> </key>
<key name="MoveFile.RECENT_KEYS"> <key name="MoveFile.RECENT_KEYS">
<recent name="D:\order\common\libs" /> <recent name="D:\order\common\libs" />
@@ -437,7 +436,14 @@
<option name="project" value="LOCAL" /> <option name="project" value="LOCAL" />
<updated>1564385286785</updated> <updated>1564385286785</updated>
</task> </task>
<option name="localTasksCounter" value="11" /> <task id="LOCAL-00011" summary="python学习">
<created>1564564379831</created>
<option name="number" value="00011" />
<option name="presentableId" value="LOCAL-00011" />
<option name="project" value="LOCAL" />
<updated>1564564379831</updated>
</task>
<option name="localTasksCounter" value="12" />
<servers /> <servers />
</component> </component>
<component name="TodoView"> <component name="TodoView">
@@ -450,7 +456,7 @@
</todo-panel> </todo-panel>
</component> </component>
<component name="ToolWindowManager"> <component name="ToolWindowManager">
<frame x="1028" y="49" width="887" height="939" extended-state="0" /> <frame x="874" y="56" width="887" height="939" extended-state="0" />
<layout> <layout>
<window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.29446408" /> <window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.29446408" />
<window_info id="Structure" order="1" side_tool="true" weight="0.25" /> <window_info id="Structure" order="1" side_tool="true" weight="0.25" />
@@ -491,13 +497,6 @@
<option name="LAST_COMMIT_MESSAGE" value="python学习" /> <option name="LAST_COMMIT_MESSAGE" value="python学习" />
</component> </component>
<component name="editorHistoryManager"> <component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/web/controllers/stat/Stat.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="145">
<caret line="8" lean-forward="true" selection-start-line="8" selection-end-line="8" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/web/controllers/member/Member.py"> <entry file="file://$PROJECT_DIR$/web/controllers/member/Member.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="238"> <state relative-caret-position="238">
@@ -773,45 +772,11 @@
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/mina/pages/index/index.wxml">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="312">
<caret line="21" column="84" selection-start-line="21" selection-start-column="84" selection-end-line="21" selection-end-column="84" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/mina/pages/index/index.json">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/mina/app.json"> <entry file="file://$PROJECT_DIR$/mina/app.json">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-837" /> <state relative-caret-position="-837" />
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/mina/app.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="279">
<caret line="9" column="6" lean-forward="true" selection-start-line="9" selection-start-column="6" selection-end-line="9" selection-end-column="6" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/mina/pages/index/index.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="346">
<caret line="62" column="30" lean-forward="true" selection-start-line="62" selection-start-column="30" selection-end-line="62" selection-end-column="30" />
<folding>
<element signature="e#0#1517#0" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/config/local_setting.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="248">
<caret line="8" lean-forward="true" selection-start-line="8" selection-end-line="8" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/config/base_setting.py"> <entry file="file://$PROJECT_DIR$/config/base_setting.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="204"> <state relative-caret-position="204">
@@ -836,13 +801,6 @@
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/common/models/member/Member.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="93">
<caret line="3" selection-start-line="3" selection-end-line="3" selection-end-column="26" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/common/models/member/Oauth_member_bind.py"> <entry file="file://$PROJECT_DIR$/common/models/member/Oauth_member_bind.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="155"> <state relative-caret-position="155">
@@ -853,15 +811,63 @@
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/common/models/member/Member.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="93">
<caret line="3" selection-start-line="3" selection-end-line="3" selection-end-column="26" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/common/libs/member/MemberService.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="527">
<caret line="18" column="8" selection-start-line="18" selection-start-column="8" selection-end-line="18" selection-end-column="8" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/web/controllers/api/Member.py"> <entry file="file://$PROJECT_DIR$/web/controllers/api/Member.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="208"> <state relative-caret-position="611">
<caret line="52" lean-forward="true" selection-start-line="52" selection-end-line="52" /> <caret line="56" column="24" lean-forward="true" selection-start-line="56" selection-start-column="24" selection-end-line="56" selection-end-column="24" />
<folding> <folding>
<element signature="e#24#65#0" expanded="true" /> <element signature="e#24#65#0" expanded="true" />
</folding> </folding>
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/mina/pages/index/index.json">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/config/local_setting.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="248">
<caret line="8" lean-forward="true" selection-start-line="8" selection-end-line="8" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/mina/pages/index/index.wxml">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="332">
<caret line="19" lean-forward="true" selection-start-line="19" selection-end-line="19" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/mina/app.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="325">
<caret line="77" column="6" lean-forward="true" selection-start-line="77" selection-start-column="6" selection-end-line="77" selection-end-column="6" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/mina/pages/index/index.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="292">
<caret line="97" column="19" lean-forward="true" selection-start-line="97" selection-start-column="19" selection-end-line="97" selection-end-column="19" />
<folding>
<element signature="e#0#1517#0" />
</folding>
</state>
</provider>
</entry>
</component> </component>
</project> </project>

View File

@@ -0,0 +1,27 @@
# -*- coding: utf-8 -*-
import hashlib,requests,random,string,json
from application import app
class MemberService():
@staticmethod
def geneAuthCode( member_info = None ):
m = hashlib.md5()
str = "%s-%s-%s" % ( member_info.id, member_info.salt,member_info.status)
m.update(str.encode("utf-8"))
return m.hexdigest()
@staticmethod
def geneSalt( length = 16 ):
keylist = [ random.choice( ( string.ascii_letters + string.digits ) ) for i in range( length ) ]
return ( "".join( keylist ) )
@staticmethod
def getWeChatOpenId(code):
url = "https://api.weixin.qq.com/sns/jscode2session?appid={0}&secret={1}&js_code={2}&grant_type=authorization_code" \
.format(app.config['MINA_APP']['appid'], app.config['MINA_APP']['appkey'], code)
r = requests.get(url)
res = json.loads(r.text)
openid = None
if 'openid' in res:
openid = res['openid']
return openid

2
mina

Submodule mina updated: 14a30e11ab...fb3fd6da10

View File

@@ -6,6 +6,7 @@ import requests,json
from common.models.member.Member import Member from common.models.member.Member import Member
from common.models.member.Oauth_member_bind import OauthMemberBind from common.models.member.Oauth_member_bind import OauthMemberBind
from common.libs.Helper import getCurrentDate from common.libs.Helper import getCurrentDate
from common.libs.member.MemberService import MemberService
@route_api.route("/member/login",methods = [ "GET","POST" ]) @route_api.route("/member/login",methods = [ "GET","POST" ])
def login(): def login():
@@ -18,13 +19,11 @@ def login():
resp['msg'] = "需要code" resp['msg'] = "需要code"
return jsonify(resp) return jsonify(resp)
openid = MemberService.getWeChatOpenId(code)
url = "https://api.weixin.qq.com/sns/jscode2session?appid={0}&secret={1}&js_code={2}&grant_type=authorization_code" \ if openid is None:
.format(app.config['MINA_APP']['appid'], app.config['MINA_APP']['appkey'], code) resp['code'] = -1
r = requests.get(url) resp['msg'] = "调用微信出错"
res = json.loads(r.text) return jsonify(resp)
openid = res['openid']
nickname = req['nickName'] if 'nickName' in req else '' nickname = req['nickName'] if 'nickName' in req else ''
sex = req['gender'] if 'gender' in req else 0 sex = req['gender'] if 'gender' in req else 0
avatar = req['avatarUrl'] if 'avatarUrl' in req else '' avatar = req['avatarUrl'] if 'avatarUrl' in req else ''
@@ -37,7 +36,7 @@ def login():
model_member.nickname = nickname model_member.nickname = nickname
model_member.sex = sex model_member.sex = sex
model_member.avatar = avatar model_member.avatar = avatar
model_member.salt = '' model_member.salt = MemberService.geneSalt()
model_member.updated_time = model_member.created_time = getCurrentDate() model_member.updated_time = model_member.created_time = getCurrentDate()
db.session.add(model_member) db.session.add(model_member)
db.session.commit() db.session.commit()
@@ -53,6 +52,39 @@ def login():
bind_info = model_bind bind_info = model_bind
member_info = Member.query.filter_by(id=bind_info.member_id).first() member_info = Member.query.filter_by(id=bind_info.member_id).first()
resp['code'] = 200 token = "%s#%s" % (MemberService.geneAuthCode(member_info), member_info.id)
resp['data'] = {'nickname': member_info.nickname} resp['data'] = {'token': token}
return jsonify(resp)
@route_api.route("/member/check-reg",methods = [ "GET","POST" ])
def checkReg():
resp = {'code': 200, 'msg': '操作成功~', 'data': {}}
req = request.values
code = req['code'] if 'code' in req else ''
if not code or len(code) < 1:
resp['code'] = -1
resp['msg'] = "需要code"
return jsonify(resp)
openid = MemberService.getWeChatOpenId(code)
if openid is None:
resp['code'] = -1
resp['msg'] = "调用微信出错"
return jsonify(resp)
bind_info = OauthMemberBind.query.filter_by(openid=openid, type=1).first()
if not bind_info:
resp['code'] = -1
resp['msg'] = "未绑定"
return jsonify(resp)
member_info = Member.query.filter_by( id = bind_info.member_id).first()
if not member_info:
resp['code'] = -1
resp['msg'] = "未查询到绑定信息"
return jsonify(resp)
token = "%s#%s"%( MemberService.geneAuthCode( member_info ),member_info.id )
resp['data'] = { 'token':token }
return jsonify(resp) return jsonify(resp)