python学习
This commit is contained in:
204
.idea/workspace.xml
generated
204
.idea/workspace.xml
generated
@@ -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>
|
||||||
27
common/libs/member/MemberService.py
Normal file
27
common/libs/member/MemberService.py
Normal 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
2
mina
Submodule mina updated: 14a30e11ab...fb3fd6da10
@@ -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)
|
||||||
Reference in New Issue
Block a user