python学习
This commit is contained in:
602
.idea/workspace.xml
generated
602
.idea/workspace.xml
generated
@@ -2,23 +2,24 @@
|
||||
<project version="4">
|
||||
<component name="ChangeListManager">
|
||||
<list default="true" id="d564f57a-9f96-4262-9481-cacdf2b8445c" name="Default" comment="python学习">
|
||||
<change afterPath="$PROJECT_DIR$/com" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/common/libs/LogService.py" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/web/interceptors/ErrorInterceptor.py" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/web/static/js/account/index.js" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/web/static/js/account/set.js" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/comm" 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$/common/libs/Helper.py" beforeDir="false" afterPath="$PROJECT_DIR$/common/libs/Helper.py" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/common/libs/UrlManager.py" beforeDir="false" afterPath="$PROJECT_DIR$/common/libs/UrlManager.py" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/common/models/log/AppAccessLog.py" beforeDir="false" afterPath="$PROJECT_DIR$/common/models/log/AppAccessLog.py" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/common/models/log/AppErrorLog.py" beforeDir="false" afterPath="$PROJECT_DIR$/common/models/log/AppErrorLog.py" 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$/config/local_setting.py" beforeDir="false" afterPath="$PROJECT_DIR$/config/local_setting.py" 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.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.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/account/Account.py" beforeDir="false" afterPath="$PROJECT_DIR$/web/controllers/account/Account.py" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/web/controllers/user/User.py" beforeDir="false" afterPath="$PROJECT_DIR$/web/controllers/user/User.py" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/web/interceptors/AuthInterceptor.py" beforeDir="false" afterPath="$PROJECT_DIR$/web/interceptors/AuthInterceptor.py" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/web/templates/account/index.html" beforeDir="false" afterPath="$PROJECT_DIR$/web/templates/account/index.html" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/web/templates/account/set.html" beforeDir="false" afterPath="$PROJECT_DIR$/web/templates/account/set.html" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/www.py" beforeDir="false" afterPath="$PROJECT_DIR$/www.py" afterDir="false" />
|
||||
</list>
|
||||
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
|
||||
@@ -30,87 +31,73 @@
|
||||
<component name="FileEditorManager">
|
||||
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
|
||||
<file pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/web/interceptors/AuthInterceptor.py">
|
||||
<entry file="file://$PROJECT_DIR$/mina/pages/index/index.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="372">
|
||||
<caret line="30" lean-forward="true" selection-start-line="30" selection-end-line="30" />
|
||||
<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#24#51#0" expanded="true" />
|
||||
<element signature="e#0#1517#0" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file pinned="false" current-in-tab="true">
|
||||
<entry file="file://$PROJECT_DIR$/web/interceptors/ErrorInterceptor.py">
|
||||
<file pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/config/base_setting.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="248">
|
||||
<caret line="8" column="10" selection-start-line="8" selection-start-column="10" selection-end-line="8" selection-end-column="10" />
|
||||
<state relative-caret-position="204">
|
||||
<caret line="9" column="19" lean-forward="true" selection-start-line="9" selection-start-column="19" selection-end-line="9" selection-end-column="19" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file pinned="false" current-in-tab="true">
|
||||
<entry file="file://$PROJECT_DIR$/web/controllers/api/Member.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="208">
|
||||
<caret line="52" lean-forward="true" selection-start-line="52" selection-end-line="52" />
|
||||
<folding>
|
||||
<element signature="e#24#52#0" expanded="true" />
|
||||
<element signature="e#24#65#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file pinned="false" current-in-tab="false">
|
||||
<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>
|
||||
</file>
|
||||
<file pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/common/models/member/Oauth_member_bind.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="155">
|
||||
<caret line="5" lean-forward="true" selection-start-line="5" selection-end-line="5" />
|
||||
<folding>
|
||||
<element signature="e#16#85#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/common/models/User.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>
|
||||
</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="217">
|
||||
<caret line="7" column="28" selection-start-line="7" selection-start-column="28" selection-end-line="7" selection-end-column="28" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/web/templates/error/error.html">
|
||||
<provider selected="true" editor-type-id="text-editor" />
|
||||
</entry>
|
||||
</file>
|
||||
<file pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/common/libs/LogService.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="178">
|
||||
<caret line="25" column="8" selection-start-line="25" selection-start-column="8" selection-end-line="25" selection-end-column="8" />
|
||||
<folding>
|
||||
<element signature="e#24#51#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/common/libs/UrlManager.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="496">
|
||||
<caret line="16" column="22" selection-start-line="16" selection-start-column="22" selection-end-line="16" selection-end-column="22" />
|
||||
<folding>
|
||||
<element signature="e#24#35#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/common/models/log/AppAccessLog.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="155">
|
||||
<caret line="5" lean-forward="true" selection-start-line="5" selection-end-line="5" />
|
||||
<folding>
|
||||
<element signature="e#16#90#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/common/models/log/AppErrorLog.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="215">
|
||||
<caret line="7" lean-forward="true" selection-start-line="7" selection-end-line="7" />
|
||||
<folding>
|
||||
<element signature="e#16#78#0" expanded="true" />
|
||||
</folding>
|
||||
<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>
|
||||
@@ -118,17 +105,22 @@
|
||||
<file pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/config/local_setting.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="62">
|
||||
<caret line="2" column="12" lean-forward="true" selection-start-line="2" selection-start-column="12" selection-end-line="2" selection-end-column="12" />
|
||||
<state relative-caret-position="248">
|
||||
<caret line="8" lean-forward="true" selection-start-line="8" selection-end-line="8" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/web/static/js/account/index.js">
|
||||
<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">
|
||||
<entry file="file://$PROJECT_DIR$/mina/pages/index/index.wxml">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="1426">
|
||||
<caret line="46" column="2" lean-forward="true" selection-start-line="46" selection-start-column="2" selection-end-line="46" selection-end-column="2" />
|
||||
<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>
|
||||
@@ -155,6 +147,7 @@
|
||||
<find>ajax</find>
|
||||
<find>账户</find>
|
||||
<find>请输入姓名</find>
|
||||
<find>getRequestHeader</find>
|
||||
</findStrings>
|
||||
<replaceStrings>
|
||||
<replace>ops_render</replace>
|
||||
@@ -190,20 +183,28 @@
|
||||
<option value="$PROJECT_DIR$/web/controllers/finance/Finance.py" />
|
||||
<option value="$PROJECT_DIR$/web/static/js/user/edit.js" />
|
||||
<option value="$PROJECT_DIR$/web/templates/user/edit.html" />
|
||||
<option value="$PROJECT_DIR$/web/templates/account/info.html" />
|
||||
<option value="$PROJECT_DIR$/common/libs/Helper.py" />
|
||||
<option value="$PROJECT_DIR$/config/base_setting.py" />
|
||||
<option value="$PROJECT_DIR$/web/controllers/account/Account.py" />
|
||||
<option value="$PROJECT_DIR$/web/templates/account/index.html" />
|
||||
<option value="$PROJECT_DIR$/web/templates/account/set.html" />
|
||||
<option value="$PROJECT_DIR$/web/controllers/user/User.py" />
|
||||
<option value="$PROJECT_DIR$/web/static/js/account/index.js" />
|
||||
<option value="$PROJECT_DIR$/common/libs/UrlManager.py" />
|
||||
<option value="$PROJECT_DIR$/config/local_setting.py" />
|
||||
<option value="$PROJECT_DIR$/common/models/log/AppAccessLog.py" />
|
||||
<option value="$PROJECT_DIR$/common/models/log/AppErrorLog.py" />
|
||||
<option value="$PROJECT_DIR$/web/interceptors/AuthInterceptor.py" />
|
||||
<option value="$PROJECT_DIR$/web/templates/account/info.html" />
|
||||
<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$/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/base_setting.py" />
|
||||
<option value="$PROJECT_DIR$/数据库文件/自动生成models.txt" />
|
||||
<option value="$PROJECT_DIR$/common/models/member/Member.py" />
|
||||
<option value="$PROJECT_DIR$/common/models/member/Oauth_member_bind.py" />
|
||||
<option value="$PROJECT_DIR$/web/controllers/api/Member.py" />
|
||||
</list>
|
||||
</option>
|
||||
</component>
|
||||
@@ -217,9 +218,9 @@
|
||||
<packageJsonPaths />
|
||||
</component>
|
||||
<component name="ProjectFrameBounds">
|
||||
<option name="x" value="960" />
|
||||
<option name="y" value="20" />
|
||||
<option name="width" value="958" />
|
||||
<option name="x" value="1028" />
|
||||
<option name="y" value="49" />
|
||||
<option name="width" value="887" />
|
||||
<option name="height" value="939" />
|
||||
</component>
|
||||
<component name="ProjectLevelVcsManager" settingsEditedManually="true" />
|
||||
@@ -246,13 +247,6 @@
|
||||
<item name="common" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="libs" 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>
|
||||
<item name="order" type="b2602c69:ProjectViewProjectNode" />
|
||||
<item name="order" type="462c0819:PsiDirectoryNode" />
|
||||
@@ -264,13 +258,31 @@
|
||||
<item name="order" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="common" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="models" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="log" 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="config" type="462c0819:PsiDirectoryNode" />
|
||||
</path>
|
||||
<path>
|
||||
<item name="order" type="b2602c69:ProjectViewProjectNode" />
|
||||
<item name="order" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="mina" type="462c0819:PsiDirectoryNode" />
|
||||
</path>
|
||||
<path>
|
||||
<item name="order" type="b2602c69:ProjectViewProjectNode" />
|
||||
<item name="order" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="mina" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="pages" type="462c0819:PsiDirectoryNode" />
|
||||
</path>
|
||||
<path>
|
||||
<item name="order" type="b2602c69:ProjectViewProjectNode" />
|
||||
<item name="order" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="mina" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="pages" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="index" type="462c0819:PsiDirectoryNode" />
|
||||
</path>
|
||||
<path>
|
||||
<item name="order" type="b2602c69:ProjectViewProjectNode" />
|
||||
<item name="order" type="462c0819:PsiDirectoryNode" />
|
||||
@@ -287,68 +299,12 @@
|
||||
<item name="order" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="web" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="controllers" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="account" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="api" type="462c0819:PsiDirectoryNode" />
|
||||
</path>
|
||||
<path>
|
||||
<item name="order" type="b2602c69:ProjectViewProjectNode" />
|
||||
<item name="order" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="web" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="controllers" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="user" type="462c0819:PsiDirectoryNode" />
|
||||
</path>
|
||||
<path>
|
||||
<item name="order" type="b2602c69:ProjectViewProjectNode" />
|
||||
<item name="order" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="web" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="interceptors" type="462c0819:PsiDirectoryNode" />
|
||||
</path>
|
||||
<path>
|
||||
<item name="order" type="b2602c69:ProjectViewProjectNode" />
|
||||
<item name="order" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="web" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="static" type="462c0819:PsiDirectoryNode" />
|
||||
</path>
|
||||
<path>
|
||||
<item name="order" type="b2602c69:ProjectViewProjectNode" />
|
||||
<item name="order" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="web" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="static" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="js" type="462c0819:PsiDirectoryNode" />
|
||||
</path>
|
||||
<path>
|
||||
<item name="order" type="b2602c69:ProjectViewProjectNode" />
|
||||
<item name="order" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="web" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="static" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="js" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="account" type="462c0819:PsiDirectoryNode" />
|
||||
</path>
|
||||
<path>
|
||||
<item name="order" type="b2602c69:ProjectViewProjectNode" />
|
||||
<item name="order" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="web" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="templates" type="462c0819:PsiDirectoryNode" />
|
||||
</path>
|
||||
<path>
|
||||
<item name="order" type="b2602c69:ProjectViewProjectNode" />
|
||||
<item name="order" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="web" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="templates" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="account" type="462c0819:PsiDirectoryNode" />
|
||||
</path>
|
||||
<path>
|
||||
<item name="order" type="b2602c69:ProjectViewProjectNode" />
|
||||
<item name="order" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="web" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="templates" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="common" type="462c0819:PsiDirectoryNode" />
|
||||
</path>
|
||||
<path>
|
||||
<item name="order" type="b2602c69:ProjectViewProjectNode" />
|
||||
<item name="order" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="web" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="templates" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="error" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="数据库文件" type="462c0819:PsiDirectoryNode" />
|
||||
</path>
|
||||
<path>
|
||||
<item name="order" type="b2602c69:ProjectViewProjectNode" />
|
||||
@@ -364,7 +320,7 @@
|
||||
<component name="PropertiesComponent">
|
||||
<property name="SHARE_PROJECT_CONFIGURATION_FILES" value="true" />
|
||||
<property name="WebServerToolWindowFactoryState" value="false" />
|
||||
<property name="last_opened_file_path" value="$PROJECT_DIR$/web/templates" />
|
||||
<property name="last_opened_file_path" value="$PROJECT_DIR$/数据库文件" />
|
||||
<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="options.lastSelected" value="com.jetbrains.python.configuration.PythonSdkConfigurable" />
|
||||
@@ -375,11 +331,11 @@
|
||||
</component>
|
||||
<component name="RecentsManager">
|
||||
<key name="CopyFile.RECENT_KEYS">
|
||||
<recent name="D:\order\数据库文件" />
|
||||
<recent name="D:\order" />
|
||||
<recent name="D:\order\web\controllers\api" />
|
||||
<recent name="D:\order\web\templates" />
|
||||
<recent name="D:\order\web\interceptors" />
|
||||
<recent name="D:\order\common\libs" />
|
||||
<recent name="D:\order\web\templates\common" />
|
||||
<recent name="D:\order\web\static\js\account" />
|
||||
</key>
|
||||
<key name="MoveFile.RECENT_KEYS">
|
||||
<recent name="D:\order\common\libs" />
|
||||
@@ -474,7 +430,14 @@
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1563790035610</updated>
|
||||
</task>
|
||||
<option name="localTasksCounter" value="10" />
|
||||
<task id="LOCAL-00010" summary="python学习">
|
||||
<created>1564385286785</created>
|
||||
<option name="number" value="00010" />
|
||||
<option name="presentableId" value="LOCAL-00010" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1564385286785</updated>
|
||||
</task>
|
||||
<option name="localTasksCounter" value="11" />
|
||||
<servers />
|
||||
</component>
|
||||
<component name="TodoView">
|
||||
@@ -487,9 +450,9 @@
|
||||
</todo-panel>
|
||||
</component>
|
||||
<component name="ToolWindowManager">
|
||||
<frame x="960" y="20" width="958" height="939" extended-state="0" />
|
||||
<frame x="1028" y="49" width="887" height="939" extended-state="0" />
|
||||
<layout>
|
||||
<window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.27173913" />
|
||||
<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="Favorites" order="2" side_tool="true" />
|
||||
<window_info id="Project Explorer" order="3" />
|
||||
@@ -504,7 +467,7 @@
|
||||
<window_info anchor="bottom" id="TODO" order="6" weight="0.32960895" />
|
||||
<window_info anchor="bottom" id="Docker" order="7" show_stripe_button="false" />
|
||||
<window_info anchor="bottom" id="Database Changes" order="8" show_stripe_button="false" />
|
||||
<window_info anchor="bottom" id="Terminal" order="9" visible="true" weight="0.29404467" />
|
||||
<window_info anchor="bottom" id="Terminal" order="9" visible="true" weight="0.27791563" />
|
||||
<window_info anchor="bottom" id="Event Log" order="10" side_tool="true" />
|
||||
<window_info anchor="bottom" id="Version Control" order="11" />
|
||||
<window_info anchor="bottom" id="Python Console" order="12" />
|
||||
@@ -528,79 +491,6 @@
|
||||
<option name="LAST_COMMIT_MESSAGE" value="python学习" />
|
||||
</component>
|
||||
<component name="editorHistoryManager">
|
||||
<entry file="file://$PROJECT_DIR$/venv/Lib/site-packages/sqlalchemy/engine/strategies.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="166">
|
||||
<caret line="86" selection-start-line="86" selection-end-line="86" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/venv/Lib/site-packages/sqlalchemy/engine/__init__.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="166">
|
||||
<caret line="434" selection-start-line="434" selection-end-line="434" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/venv/Lib/site-packages/flask/app.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="166">
|
||||
<caret line="1934" selection-start-line="1934" selection-end-line="1934" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/requirements.txt">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="93">
|
||||
<caret line="3" selection-start-line="3" selection-end-line="3" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/common/libs/user/__init__.py">
|
||||
<provider selected="true" editor-type-id="text-editor" />
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/config/__init__.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="31">
|
||||
<caret line="1" selection-start-line="1" selection-end-line="1" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/common/models/__init__.py">
|
||||
<provider selected="true" editor-type-id="text-editor" />
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/common/__init__.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="62">
|
||||
<caret line="2" column="28" lean-forward="true" selection-start-line="2" selection-start-column="28" selection-end-line="2" selection-end-column="28" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/web/static/js/common.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="237">
|
||||
<caret line="140" column="6" selection-start-line="140" selection-start-column="6" selection-end-line="140" selection-end-column="6" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/web/interceptors/__init__.py">
|
||||
<provider selected="true" editor-type-id="text-editor" />
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/README.en.md" />
|
||||
<entry file="file://$PROJECT_DIR$/web/interceptors/ApiAuthInterceptor.py" />
|
||||
<entry file="file://$PROJECT_DIR$/readme.md">
|
||||
<provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]">
|
||||
<state split_layout="SPLIT">
|
||||
<first_editor />
|
||||
<second_editor />
|
||||
</state>
|
||||
</provider>
|
||||
<provider editor-type-id="text-editor">
|
||||
<state relative-caret-position="108">
|
||||
<caret line="2" column="4" lean-forward="true" selection-start-line="2" selection-start-column="4" selection-end-line="2" selection-end-column="4" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/web/controllers/stat/Stat.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="145">
|
||||
@@ -733,23 +623,6 @@
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/web/controllers/account/Account.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="4805">
|
||||
<caret line="161" selection-start-line="161" selection-end-line="161" />
|
||||
<folding>
|
||||
<element signature="e#24#76#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/web/templates/account/info.html">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="2046">
|
||||
<caret line="66" column="14" selection-start-line="66" selection-start-column="14" selection-end-line="66" selection-end-column="14" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/web/static/js/account/set.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="2015">
|
||||
@@ -757,13 +630,6 @@
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/web/templates/account/index.html">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="62">
|
||||
<caret line="2" column="39" selection-start-line="2" selection-start-column="39" selection-end-line="2" selection-end-column="39" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/web/templates/common/tab_user.html">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="279">
|
||||
@@ -771,13 +637,6 @@
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/config/base_setting.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="620">
|
||||
<caret line="20" column="14" selection-start-line="20" selection-end-line="20" selection-end-column="14" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/web/templates/account/set.html">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="186">
|
||||
@@ -799,36 +658,7 @@
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/config/local_setting.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="62">
|
||||
<caret line="2" column="12" lean-forward="true" selection-start-line="2" selection-start-column="12" selection-end-line="2" selection-end-column="12" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/common/models/User.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="343">
|
||||
<caret line="22" lean-forward="true" selection-start-line="22" selection-end-line="22" />
|
||||
<folding>
|
||||
<element signature="e#16#84#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/common/models/AppAccessLog.py">
|
||||
<provider selected="true" editor-type-id="text-editor" />
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/common/models/log/AppAccessLog.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="155">
|
||||
<caret line="5" lean-forward="true" selection-start-line="5" selection-end-line="5" />
|
||||
<folding>
|
||||
<element signature="e#16#90#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/common/models/AppAccessLog.py" />
|
||||
<entry file="file://$PROJECT_DIR$/common/models/log/AppErrorLog.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="215">
|
||||
@@ -839,9 +669,66 @@
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/web/interceptors/AuthInterceptor.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="558">
|
||||
<caret line="26" column="21" selection-start-line="26" selection-start-column="15" selection-end-line="26" selection-end-column="27" />
|
||||
<folding>
|
||||
<element signature="e#24#51#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/web/controllers/account/Account.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="1612">
|
||||
<caret line="58" selection-start-line="58" selection-end-line="58" />
|
||||
<folding>
|
||||
<element signature="e#24#76#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/common/models/log/AppAccessLog.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="310">
|
||||
<caret line="12" column="14" selection-start-line="12" selection-start-column="4" selection-end-line="12" selection-end-column="14" />
|
||||
<folding>
|
||||
<element signature="e#16#90#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/web/templates/account/info.html">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="1612">
|
||||
<caret line="52" column="55" selection-start-line="52" selection-start-column="51" selection-end-line="52" selection-end-column="55" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/web/interceptors/ErrorInterceptor.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="186">
|
||||
<caret line="8" column="21" selection-start-line="8" selection-start-column="21" selection-end-line="8" selection-end-column="21" />
|
||||
<folding>
|
||||
<element signature="e#24#52#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/web/templates/account/index.html">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="1209">
|
||||
<caret line="39" column="9" lean-forward="true" selection-start-line="39" selection-start-column="9" selection-end-line="86" selection-end-column="46" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/web/templates/error/error.html">
|
||||
<provider selected="true" editor-type-id="text-editor" />
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/common/libs/UrlManager.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="496">
|
||||
<state relative-caret-position="465">
|
||||
<caret line="16" column="22" selection-start-line="16" selection-start-column="22" selection-end-line="16" selection-end-column="22" />
|
||||
<folding>
|
||||
<element signature="e#24#35#0" expanded="true" />
|
||||
@@ -849,42 +736,129 @@
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/web/templates/error/error.html">
|
||||
<provider selected="true" editor-type-id="text-editor" />
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/web/interceptors/AuthInterceptor.py">
|
||||
<entry file="file://$PROJECT_DIR$/common/libs/LogService.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="372">
|
||||
<caret line="30" lean-forward="true" selection-start-line="30" selection-end-line="30" />
|
||||
<state relative-caret-position="80">
|
||||
<caret line="10" column="8" selection-start-line="10" selection-start-column="8" selection-end-line="10" selection-end-column="8" />
|
||||
<folding>
|
||||
<element signature="e#24#51#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/common/libs/LogService.py">
|
||||
<entry file="file://$PROJECT_DIR$/mina/project.config.json">
|
||||
<provider selected="true" editor-type-id="text-editor" />
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/manager.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="178">
|
||||
<caret line="25" column="8" selection-start-line="25" selection-start-column="8" selection-end-line="25" selection-end-column="8" />
|
||||
<state relative-caret-position="248">
|
||||
<caret line="10" selection-start-line="10" selection-end-line="10" />
|
||||
<folding>
|
||||
<element signature="e#24#51#0" expanded="true" />
|
||||
<element signature="e#24#59#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/web/controllers/api/__init__.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="62">
|
||||
<caret line="2" column="22" selection-start-line="2" selection-start-column="22" selection-end-line="2" selection-end-column="22" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/www.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="217">
|
||||
<caret line="7" column="28" selection-start-line="7" selection-start-column="28" selection-end-line="7" selection-end-column="28" />
|
||||
<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>
|
||||
<entry file="file://$PROJECT_DIR$/web/interceptors/ErrorInterceptor.py">
|
||||
<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">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="-837" />
|
||||
</provider>
|
||||
</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" column="10" selection-start-line="8" selection-start-column="10" selection-end-line="8" selection-end-column="10" />
|
||||
<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">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="204">
|
||||
<caret line="9" column="19" lean-forward="true" selection-start-line="9" selection-start-column="19" selection-end-line="9" selection-end-column="19" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/数据库文件/自动生成models.txt">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="31">
|
||||
<caret line="1" lean-forward="true" selection-start-line="1" selection-end-line="1" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/数据库文件/food.sql">
|
||||
<provider selected="true" editor-type-id="text-editor" />
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/common/models/User.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/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">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="155">
|
||||
<caret line="5" lean-forward="true" selection-start-line="5" selection-end-line="5" />
|
||||
<folding>
|
||||
<element signature="e#24#52#0" expanded="true" />
|
||||
<element signature="e#16#85#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/web/controllers/api/Member.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="208">
|
||||
<caret line="52" lean-forward="true" selection-start-line="52" selection-end-line="52" />
|
||||
<folding>
|
||||
<element signature="e#24#65#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
|
||||
25
comm
Normal file
25
comm
Normal file
@@ -0,0 +1,25 @@
|
||||
# coding: utf-8
|
||||
from sqlalchemy import BigInteger, Column, DateTime, Integer, String
|
||||
from sqlalchemy.schema import FetchedValue
|
||||
from sqlalchemy.ext.declarative import declarative_base
|
||||
|
||||
|
||||
Base = declarative_base()
|
||||
metadata = Base.metadata
|
||||
|
||||
|
||||
class User(Base):
|
||||
__tablename__ = 'user'
|
||||
|
||||
uid = Column(BigInteger, primary_key=True)
|
||||
nickname = Column(String(100), nullable=False, server_default=FetchedValue())
|
||||
mobile = Column(String(20), nullable=False, server_default=FetchedValue())
|
||||
email = Column(String(100), nullable=False, server_default=FetchedValue())
|
||||
sex = Column(Integer, nullable=False, server_default=FetchedValue())
|
||||
avatar = Column(String(64), nullable=False, server_default=FetchedValue())
|
||||
login_name = Column(String(20), nullable=False, unique=True, server_default=FetchedValue())
|
||||
login_pwd = Column(String(32), nullable=False, server_default=FetchedValue())
|
||||
login_salt = Column(String(32), nullable=False, server_default=FetchedValue())
|
||||
status = Column(Integer, nullable=False, server_default=FetchedValue())
|
||||
updated_time = Column(DateTime, nullable=False, server_default=FetchedValue())
|
||||
created_time = Column(DateTime, nullable=False, server_default=FetchedValue())
|
||||
19
common/models/member/Member.py
Normal file
19
common/models/member/Member.py
Normal file
@@ -0,0 +1,19 @@
|
||||
# coding: utf-8
|
||||
from sqlalchemy import Column, DateTime, Integer, String
|
||||
from sqlalchemy.schema import FetchedValue
|
||||
from application import db
|
||||
|
||||
|
||||
class Member(db.Model):
|
||||
__tablename__ = 'member'
|
||||
|
||||
id = db.Column(db.Integer, primary_key=True)
|
||||
nickname = db.Column(db.String(100), nullable=False, server_default=db.FetchedValue())
|
||||
mobile = db.Column(db.String(11), nullable=False, server_default=db.FetchedValue())
|
||||
sex = db.Column(db.Integer, nullable=False, server_default=db.FetchedValue())
|
||||
avatar = db.Column(db.String(200), nullable=False, server_default=db.FetchedValue())
|
||||
salt = db.Column(db.String(32), nullable=False, server_default=db.FetchedValue())
|
||||
reg_ip = db.Column(db.String(100), nullable=False, server_default=db.FetchedValue())
|
||||
status = db.Column(db.Integer, nullable=False, server_default=db.FetchedValue())
|
||||
updated_time = db.Column(db.DateTime, nullable=False, server_default=db.FetchedValue())
|
||||
created_time = db.Column(db.DateTime, nullable=False, server_default=db.FetchedValue())
|
||||
21
common/models/member/Oauth_member_bind.py
Normal file
21
common/models/member/Oauth_member_bind.py
Normal file
@@ -0,0 +1,21 @@
|
||||
# coding: utf-8
|
||||
from sqlalchemy import Column, DateTime, Index, Integer, String, Text
|
||||
from sqlalchemy.schema import FetchedValue
|
||||
from application import db
|
||||
|
||||
|
||||
class OauthMemberBind(db.Model):
|
||||
__tablename__ = 'oauth_member_bind'
|
||||
__table_args__ = (
|
||||
db.Index('idx_type_openid', 'type', 'openid'),
|
||||
)
|
||||
|
||||
id = db.Column(db.Integer, primary_key=True)
|
||||
member_id = db.Column(db.Integer, nullable=False, server_default=db.FetchedValue())
|
||||
client_type = db.Column(db.String(20), nullable=False, server_default=db.FetchedValue())
|
||||
type = db.Column(db.Integer, nullable=False, server_default=db.FetchedValue())
|
||||
openid = db.Column(db.String(80), nullable=False, server_default=db.FetchedValue())
|
||||
unionid = db.Column(db.String(100), nullable=False, server_default=db.FetchedValue())
|
||||
extra = db.Column(db.Text, nullable=False)
|
||||
updated_time = db.Column(db.DateTime, nullable=False, server_default=db.FetchedValue())
|
||||
created_time = db.Column(db.DateTime, nullable=False, server_default=db.FetchedValue())
|
||||
@@ -7,7 +7,8 @@ AUTH_COOKIE_NAME = "mooc_food"
|
||||
|
||||
##过滤url
|
||||
IGNORE_URLS = [
|
||||
"^/user/login"
|
||||
"^/user/login",
|
||||
"^/api"
|
||||
]
|
||||
|
||||
IGNORE_CHECK_LOGIN_URLS = [
|
||||
@@ -15,10 +16,21 @@ IGNORE_CHECK_LOGIN_URLS = [
|
||||
"^/favicon.ico"
|
||||
]
|
||||
|
||||
|
||||
|
||||
PAGE_SIZE = 50
|
||||
PAGE_DISPLAY = 10
|
||||
|
||||
STATUS_MAPPING = {
|
||||
"1":"正常",
|
||||
"0":"已删除"
|
||||
}
|
||||
|
||||
|
||||
MINA_APP = {
|
||||
'appid':'wx2c65877d37fc29bf',
|
||||
'appkey':'8c61791794cde415042924a9714542a9',
|
||||
'paykey':'xxxxxxxxxxxxxx换自己的',
|
||||
'mch_id':'xxxxxxxxxxxx换自己的',
|
||||
'callback_url':'/api/order/callback'
|
||||
}
|
||||
2
mina
2
mina
Submodule mina updated: 47c5b15aed...14a30e11ab
@@ -53,7 +53,9 @@ def info():
|
||||
if not info:
|
||||
return redirect(reback_url)
|
||||
|
||||
access_list = AppAccessLog.query.filter_by(uid=uid).order_by(AppAccessLog.id.desc()).limit(10).all()
|
||||
resp_data['info'] = info
|
||||
resp_data['access_list'] = access_list
|
||||
|
||||
return ops_render("account/info.html", resp_data)
|
||||
|
||||
|
||||
58
web/controllers/api/Member.py
Normal file
58
web/controllers/api/Member.py
Normal file
@@ -0,0 +1,58 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from web.controllers.api import route_api
|
||||
from flask import request,jsonify
|
||||
from application import app,db
|
||||
import requests,json
|
||||
from common.models.member.Member import Member
|
||||
from common.models.member.Oauth_member_bind import OauthMemberBind
|
||||
from common.libs.Helper import getCurrentDate
|
||||
|
||||
@route_api.route("/member/login",methods = [ "GET","POST" ])
|
||||
def login():
|
||||
resp = {'code': 200, 'msg': '操作成功~', 'data': {}}
|
||||
req = request.values
|
||||
code = req['code'] if 'code' in req else ''
|
||||
app.logger.info(code)
|
||||
if not code or len(code) < 1:
|
||||
resp['code'] = -1
|
||||
resp['msg'] = "需要code"
|
||||
return jsonify(resp)
|
||||
|
||||
|
||||
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 = res['openid']
|
||||
|
||||
nickname = req['nickName'] if 'nickName' in req else ''
|
||||
sex = req['gender'] if 'gender' in req else 0
|
||||
avatar = req['avatarUrl'] if 'avatarUrl' in req else ''
|
||||
'''
|
||||
判断是否已经测试过,注册了直接返回一些信息
|
||||
'''
|
||||
bind_info = OauthMemberBind.query.filter_by(openid=openid, type=1).first()
|
||||
if not bind_info:
|
||||
model_member = Member()
|
||||
model_member.nickname = nickname
|
||||
model_member.sex = sex
|
||||
model_member.avatar = avatar
|
||||
model_member.salt = ''
|
||||
model_member.updated_time = model_member.created_time = getCurrentDate()
|
||||
db.session.add(model_member)
|
||||
db.session.commit()
|
||||
|
||||
model_bind = OauthMemberBind()
|
||||
model_bind.member_id = model_member.id
|
||||
model_bind.type = 1
|
||||
model_bind.openid = openid
|
||||
model_bind.extra = ''
|
||||
model_bind.updated_time = model_bind.created_time = getCurrentDate()
|
||||
db.session.add(model_bind)
|
||||
db.session.commit()
|
||||
|
||||
bind_info = model_bind
|
||||
member_info = Member.query.filter_by(id=bind_info.member_id).first()
|
||||
resp['code'] = 200
|
||||
resp['data'] = {'nickname': member_info.nickname}
|
||||
return jsonify(resp)
|
||||
8
web/controllers/api/__init__.py
Normal file
8
web/controllers/api/__init__.py
Normal file
@@ -0,0 +1,8 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from flask import Blueprint
|
||||
route_api = Blueprint('api_page',__name__ )
|
||||
from web.controllers.api.Member import *
|
||||
|
||||
@route_api.route("/")
|
||||
def index():
|
||||
return "Mina Api V1.0~~"
|
||||
3
www.py
3
www.py
@@ -19,7 +19,7 @@ from web.controllers.finance.Finance import route_finance
|
||||
from web.controllers.food.Food import route_food
|
||||
from web.controllers.member.Member import route_member
|
||||
from web.controllers.stat.Stat import route_stat
|
||||
|
||||
from web.controllers.api import route_api
|
||||
app.register_blueprint( route_index,url_prefix = "/" )
|
||||
app.register_blueprint( route_user,url_prefix = "/user" )
|
||||
app.register_blueprint( route_static,url_prefix = "/static" )
|
||||
@@ -28,3 +28,4 @@ app.register_blueprint(route_finance,url_prefix="/finance")
|
||||
app.register_blueprint(route_member,url_prefix="/member")
|
||||
app.register_blueprint(route_food,url_prefix="/food")
|
||||
app.register_blueprint(route_stat,url_prefix="/stat")
|
||||
app.register_blueprint( route_api,url_prefix = "/api" )
|
||||
|
||||
398
数据库文件/food.sql
Normal file
398
数据库文件/food.sql
Normal file
@@ -0,0 +1,398 @@
|
||||
|
||||
|
||||
CREATE DATABASE `food_db` DEFAULT CHARACTER SET = `utf8mb4`;
|
||||
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `user`;
|
||||
|
||||
CREATE TABLE `user` (
|
||||
`uid` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '用户uid',
|
||||
`nickname` varchar(100) NOT NULL DEFAULT '' COMMENT '用户名',
|
||||
`mobile` varchar(20) NOT NULL DEFAULT '' COMMENT '手机号码',
|
||||
`email` varchar(100) NOT NULL DEFAULT '' COMMENT '邮箱地址',
|
||||
`sex` tinyint(1) NOT NULL DEFAULT '0' COMMENT '1:男 2:女 0:没填写',
|
||||
`avatar` varchar(64) NOT NULL DEFAULT '' COMMENT '头像',
|
||||
`login_name` varchar(20) NOT NULL DEFAULT '' COMMENT '登录用户名',
|
||||
`login_pwd` varchar(32) NOT NULL DEFAULT '' COMMENT '登录密码',
|
||||
`login_salt` varchar(32) NOT NULL DEFAULT '' COMMENT '登录密码的随机加密秘钥',
|
||||
`status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '1:有效 0:无效',
|
||||
`updated_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '最后一次更新时间',
|
||||
`created_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '插入时间',
|
||||
PRIMARY KEY (`uid`),
|
||||
UNIQUE KEY `login_name` (`login_name`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户表(管理员)';
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `app_access_log`;
|
||||
|
||||
CREATE TABLE `app_access_log` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`uid` bigint(20) NOT NULL DEFAULT '0' COMMENT 'uid',
|
||||
`referer_url` varchar(255) NOT NULL DEFAULT '' COMMENT '当前访问的refer',
|
||||
`target_url` varchar(255) NOT NULL DEFAULT '' COMMENT '访问的url',
|
||||
`query_params` text NOT NULL COMMENT 'get和post参数',
|
||||
`ua` varchar(255) NOT NULL DEFAULT '' COMMENT '访问ua',
|
||||
`ip` varchar(32) NOT NULL DEFAULT '' COMMENT '访问ip',
|
||||
`note` varchar(1000) NOT NULL DEFAULT '' COMMENT 'json格式备注字段',
|
||||
`created_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_uid` (`uid`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户访问记录表';
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `app_error_log`;
|
||||
CREATE TABLE `app_error_log` (
|
||||
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`referer_url` varchar(255) NOT NULL DEFAULT '' COMMENT '当前访问的refer',
|
||||
`target_url` varchar(255) NOT NULL DEFAULT '' COMMENT '访问的url',
|
||||
`query_params` text NOT NULL COMMENT 'get和post参数',
|
||||
`content` longtext NOT NULL COMMENT '日志内容',
|
||||
`created_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '插入时间',
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='app错误日表';
|
||||
|
||||
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `member`;
|
||||
|
||||
CREATE TABLE `member` (
|
||||
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`nickname` varchar(100) NOT NULL DEFAULT '' COMMENT '会员名',
|
||||
`mobile` varchar(11) NOT NULL DEFAULT '' COMMENT '会员手机号码',
|
||||
`sex` tinyint(1) NOT NULL DEFAULT '0' COMMENT '性别 1:男 2:女',
|
||||
`avatar` varchar(200) NOT NULL DEFAULT '' COMMENT '会员头像',
|
||||
`salt` varchar(32) NOT NULL DEFAULT '' COMMENT '随机salt',
|
||||
`reg_ip` varchar(100) NOT NULL DEFAULT '' COMMENT '注册ip',
|
||||
`status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '状态 1:有效 0:无效',
|
||||
`updated_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '最后一次更新时间',
|
||||
`created_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '插入时间',
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='会员表';
|
||||
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `oauth_member_bind`;
|
||||
|
||||
CREATE TABLE `oauth_member_bind` (
|
||||
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`member_id` int(11) NOT NULL DEFAULT '0' COMMENT '会员id',
|
||||
`client_type` varchar(20) NOT NULL DEFAULT '' COMMENT '客户端来源类型。qq,weibo,weixin',
|
||||
`type` tinyint(3) NOT NULL DEFAULT '0' COMMENT '类型 type 1:wechat ',
|
||||
`openid` varchar(80) NOT NULL DEFAULT '' COMMENT '第三方id',
|
||||
`unionid` varchar(100) NOT NULL DEFAULT '',
|
||||
`extra` text NOT NULL COMMENT '额外字段',
|
||||
`updated_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '最后更新时间',
|
||||
`created_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '插入时间',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_type_openid` (`type`,`openid`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='第三方登录绑定关系';
|
||||
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `food`;
|
||||
|
||||
CREATE TABLE `food` (
|
||||
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`cat_id` int(11) NOT NULL DEFAULT '0' COMMENT '分类id',
|
||||
`name` varchar(100) NOT NULL DEFAULT '' COMMENT '书籍名称',
|
||||
`price` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '售卖金额',
|
||||
`main_image` varchar(100) NOT NULL DEFAULT '' COMMENT '主图',
|
||||
`summary` varchar(10000) NOT NULL DEFAULT '' COMMENT '描述',
|
||||
`stock` int(11) NOT NULL DEFAULT '0' COMMENT '库存量',
|
||||
`tags` varchar(200) NOT NULL DEFAULT '' COMMENT 'tag关键字,以","连接',
|
||||
`status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '状态 1:有效 0:无效',
|
||||
`month_count` int(11) NOT NULL DEFAULT '0' COMMENT '月销售数量',
|
||||
`total_count` int(11) NOT NULL DEFAULT '0' COMMENT '总销售量',
|
||||
`view_count` int(11) NOT NULL DEFAULT '0' COMMENT '总浏览次数',
|
||||
`comment_count` int(11) NOT NULL DEFAULT '0' COMMENT '总评论量',
|
||||
`updated_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '最后更新时间',
|
||||
`created_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '最后插入时间',
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='食品表';
|
||||
|
||||
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `food_cat`;
|
||||
|
||||
CREATE TABLE `food_cat` (
|
||||
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`name` varchar(50) NOT NULL DEFAULT '' COMMENT '类别名称',
|
||||
`weight` tinyint(4) NOT NULL DEFAULT '1' COMMENT '权重',
|
||||
`status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '状态 1:有效 0:无效',
|
||||
`updated_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '最后一次更新时间',
|
||||
`created_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '插入时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `idx_name` (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='食品分类';
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `food_sale_change_log`;
|
||||
|
||||
CREATE TABLE `food_sale_change_log` (
|
||||
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`food_id` int(11) NOT NULL DEFAULT '0' COMMENT '商品id',
|
||||
`quantity` int(11) NOT NULL DEFAULT '0' COMMENT '售卖数量',
|
||||
`price` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '售卖金额',
|
||||
`member_id` int(11) NOT NULL DEFAULT '0' COMMENT '会员id',
|
||||
`created_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '售卖时间',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_food_id_id` (`food_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='商品销售情况';
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `food_stock_change_log`;
|
||||
|
||||
CREATE TABLE `food_stock_change_log` (
|
||||
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`food_id` int(11) NOT NULL COMMENT '商品id',
|
||||
`unit` int(11) NOT NULL DEFAULT '0' COMMENT '变更多少',
|
||||
`total_stock` int(11) NOT NULL DEFAULT '0' COMMENT '变更之后总量',
|
||||
`note` varchar(100) NOT NULL DEFAULT '' COMMENT '备注字段',
|
||||
`created_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '插入时间',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_food_id` (`food_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='数据库存变更表';
|
||||
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `images`;
|
||||
|
||||
CREATE TABLE `images` (
|
||||
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`file_key` varchar(60) NOT NULL DEFAULT '' COMMENT '文件名',
|
||||
`created_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '插入时间',
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `member_address`;
|
||||
CREATE TABLE `member_address` (
|
||||
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`member_id` int(11) NOT NULL DEFAULT '0' COMMENT '会员id',
|
||||
`nickname` varchar(20) NOT NULL DEFAULT '' COMMENT '收货人姓名',
|
||||
`mobile` varchar(11) NOT NULL DEFAULT '' COMMENT '收货人手机号码',
|
||||
`province_id` int(11) NOT NULL DEFAULT '0' COMMENT '省id',
|
||||
`province_str` varchar(50) NOT NULL DEFAULT '' COMMENT '省名称',
|
||||
`city_id` int(11) NOT NULL DEFAULT '0' COMMENT '城市id',
|
||||
`city_str` varchar(50) NOT NULL DEFAULT '' COMMENT '市名称',
|
||||
`area_id` int(11) NOT NULL DEFAULT '0' COMMENT '区域id',
|
||||
`area_str` varchar(50) NOT NULL DEFAULT '' COMMENT '区域名称',
|
||||
`address` varchar(100) NOT NULL DEFAULT '' COMMENT '详细地址',
|
||||
`status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '是否有效 1:有效 0:无效',
|
||||
`is_default` TINYINT(1) NOT NULL DEFAULT '0' COMMENT '默认地址',
|
||||
`updated_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '最后一次更新时间',
|
||||
`created_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '插入时间',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_member_id_status` (`member_id`,`status`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='会员收货地址';
|
||||
|
||||
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `member_cart`;
|
||||
|
||||
CREATE TABLE `member_cart` (
|
||||
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`member_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '会员id',
|
||||
`food_id` int(11) NOT NULL DEFAULT '0' COMMENT '商品id',
|
||||
`quantity` int(11) NOT NULL DEFAULT '0' COMMENT '数量',
|
||||
`updated_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '最后一次更新时间',
|
||||
`created_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '插入时间',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_member_id` (`member_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='购物车';
|
||||
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `wx_share_history`;
|
||||
|
||||
CREATE TABLE `wx_share_history` (
|
||||
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`member_id` int(11) NOT NULL DEFAULT '0' COMMENT '会员id',
|
||||
`share_url` varchar(200) NOT NULL DEFAULT '' COMMENT '分享的页面url',
|
||||
`created_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='微信分享记录';
|
||||
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `member_comments`;
|
||||
|
||||
CREATE TABLE `member_comments` (
|
||||
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`member_id` int(11) NOT NULL DEFAULT '0' COMMENT '会员id',
|
||||
`food_ids` varchar(200) NOT NULL DEFAULT '' COMMENT '商品ids',
|
||||
`pay_order_id` int(11) NOT NULL DEFAULT '0' COMMENT '订单id',
|
||||
`score` tinyint(4) NOT NULL DEFAULT '0' COMMENT '评分',
|
||||
`content` varchar(200) NOT NULL DEFAULT '' COMMENT '评论内容',
|
||||
`created_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '插入时间',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_member_id` (`member_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='会员评论表';
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `pay_order`;
|
||||
|
||||
CREATE TABLE `pay_order` (
|
||||
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`order_sn` varchar(40) NOT NULL DEFAULT '' COMMENT '随机订单号',
|
||||
`member_id` bigint(11) NOT NULL DEFAULT '0' COMMENT '会员id',
|
||||
`total_price` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '订单应付金额',
|
||||
`yun_price` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '运费金额',
|
||||
`pay_price` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '订单实付金额',
|
||||
`pay_sn` varchar(128) NOT NULL DEFAULT '' COMMENT '第三方流水号',
|
||||
`prepay_id` varchar(128) NOT NULL DEFAULT '' COMMENT '第三方预付id',
|
||||
`note` text NOT NULL COMMENT '备注信息',
|
||||
`status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '1:支付完成 0 无效 -1 申请退款 -2 退款中 -9 退款成功 -8 待支付 -7 完成支付待确认',
|
||||
`express_status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '快递状态,-8 待支付 -7 已付款待发货 1:确认收货 0:失败',
|
||||
`express_address_id` int(11) NOT NULL DEFAULT '0' COMMENT '快递地址id',
|
||||
`express_info` varchar(1000) NOT NULL DEFAULT '' COMMENT '快递信息',
|
||||
`comment_status` tinyint(1) NOT NULL DEFAULT '0' COMMENT '评论状态',
|
||||
`pay_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '付款到账时间',
|
||||
`updated_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '最近一次更新时间',
|
||||
`created_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '插入时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `idx_order_sn` (`order_sn`),
|
||||
KEY `idx_member_id_status` (`member_id`,`status`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='在线购买订单表';
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `pay_order_item`;
|
||||
|
||||
CREATE TABLE `pay_order_item` (
|
||||
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`pay_order_id` int(11) NOT NULL DEFAULT '0' COMMENT '订单id',
|
||||
`member_id` bigint(11) NOT NULL DEFAULT '0' COMMENT '会员id',
|
||||
`quantity` int(11) NOT NULL DEFAULT '1' COMMENT '购买数量 默认1份',
|
||||
`price` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '商品总价格,售价 * 数量',
|
||||
`food_id` int(11) NOT NULL DEFAULT '0' COMMENT '美食表id',
|
||||
`note` text NOT NULL COMMENT '备注信息',
|
||||
`status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '状态:1:成功 0 失败',
|
||||
`updated_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '最近一次更新时间',
|
||||
`created_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '插入时间',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `id_order_id` (`pay_order_id`),
|
||||
KEY `idx_food_id` (`food_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='订单详情表';
|
||||
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `pay_order_callback_data`;
|
||||
|
||||
CREATE TABLE `pay_order_callback_data` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`pay_order_id` int(11) NOT NULL DEFAULT '0' COMMENT '支付订单id',
|
||||
`pay_data` text NOT NULL COMMENT '支付回调信息',
|
||||
`refund_data` text NOT NULL COMMENT '退款回调信息',
|
||||
`updated_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '最后一次更新时间',
|
||||
`created_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `pay_order_id` (`pay_order_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||
|
||||
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `queue_list`;
|
||||
|
||||
CREATE TABLE `queue_list` (
|
||||
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`queue_name` varchar(30) NOT NULL DEFAULT '' COMMENT '队列名字',
|
||||
`data` varchar(500) NOT NULL DEFAULT '' COMMENT '队列数据',
|
||||
`status` tinyint(1) NOT NULL DEFAULT '-1' COMMENT '状态 -1 待处理 1 已处理',
|
||||
`updated_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '最后一次更新时间',
|
||||
`created_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '插入时间',
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='事件队列表';
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `oauth_access_token`;
|
||||
|
||||
CREATE TABLE `oauth_access_token` (
|
||||
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`access_token` varchar(600) NOT NULL DEFAULT '',
|
||||
`expired_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '过期时间',
|
||||
`created_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '插入时间',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_expired_time` (`expired_time`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='微信的access_token 用户调用其他接口的';
|
||||
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `stat_daily_food`;
|
||||
|
||||
CREATE TABLE `stat_daily_food` (
|
||||
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`date` date NOT NULL,
|
||||
`food_id` int(11) NOT NULL DEFAULT '0' COMMENT '菜品id',
|
||||
`total_count` int(11) NOT NULL DEFAULT '0' COMMENT '售卖总数量',
|
||||
`total_pay_money` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '总售卖金额',
|
||||
`updated_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '最后一次更新时间',
|
||||
`created_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '插入时间',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `date_food_id` (`date`,`food_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='书籍售卖日统计';
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `stat_daily_member`;
|
||||
|
||||
CREATE TABLE `stat_daily_member` (
|
||||
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`date` date NOT NULL COMMENT '日期',
|
||||
`member_id` int(11) NOT NULL DEFAULT '0' COMMENT '会员id',
|
||||
`total_shared_count` int(11) NOT NULL DEFAULT '0' COMMENT '当日分享总次数',
|
||||
`total_pay_money` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '当日付款总金额',
|
||||
`updated_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '最后一次更新时间',
|
||||
`created_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '插入时间',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_date_member_id` (`date`,`member_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='会员日统计';
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `stat_daily_site`;
|
||||
|
||||
CREATE TABLE `stat_daily_site` (
|
||||
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`date` date NOT NULL COMMENT '日期',
|
||||
`total_pay_money` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '当日应收总金额',
|
||||
`total_member_count` int(11) NOT NULL COMMENT '会员总数',
|
||||
`total_new_member_count` int(11) NOT NULL COMMENT '当日新增会员数',
|
||||
`total_order_count` int(11) NOT NULL COMMENT '当日订单数',
|
||||
`total_shared_count` int(11) NOT NULL,
|
||||
`updated_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '最后一次更新时间',
|
||||
`created_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '插入时间',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_date` (`date`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='全站日统计';
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
5
数据库文件/后台初始账户.sql
Normal file
5
数据库文件/后台初始账户.sql
Normal file
@@ -0,0 +1,5 @@
|
||||
请将下面的SQL语句执行,然后默认登录账号是54php.cn 密码是123456
|
||||
|
||||
INSERT INTO `user` (`uid`, `nickname`, `mobile`, `email`, `sex`, `avatar`, `login_name`, `login_pwd`, `login_salt`, `status`, `updated_time`, `created_time`)
|
||||
VALUES
|
||||
(1, '编程浪子www.54php.cn', '11012345679', 'apanly@163.com', 1, '', '54php.cn', '816440c40b7a9d55ff9eb7b20760862c', 'cF3JfH5FJfQ8B2Ba', 1, '2017-03-15 14:08:48', '2017-03-15 14:08:48');
|
||||
1
数据库文件/自动生成models.txt
Normal file
1
数据库文件/自动生成models.txt
Normal file
@@ -0,0 +1 @@
|
||||
flask-sqlacodegen "mysql://root:123456@127.0.0.1/food_db" --tables member --outfile "common/models/member/Member.py" --flask
|
||||
Reference in New Issue
Block a user