python学习
This commit is contained in:
591
.idea/workspace.xml
generated
591
.idea/workspace.xml
generated
@@ -2,7 +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$/common/libs/Helper.py" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/web/static/js/user/edit.js" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/web/static/js/user/reset_pwd.js" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/web/templates/common/tab_user.html" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/README.en.md" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/README.md" beforeDir="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/finance/Finance.py" beforeDir="false" afterPath="$PROJECT_DIR$/web/controllers/finance/Finance.py" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/web/controllers/food/Food.py" beforeDir="false" afterPath="$PROJECT_DIR$/web/controllers/food/Food.py" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/web/controllers/index.py" beforeDir="false" afterPath="$PROJECT_DIR$/web/controllers/index.py" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/web/controllers/member/Member.py" beforeDir="false" afterPath="$PROJECT_DIR$/web/controllers/member/Member.py" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/web/controllers/stat/Stat.py" beforeDir="false" afterPath="$PROJECT_DIR$/web/controllers/stat/Stat.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/common/layout_main.html" beforeDir="false" afterPath="$PROJECT_DIR$/web/templates/common/layout_main.html" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/web/templates/user/edit.html" beforeDir="false" afterPath="$PROJECT_DIR$/web/templates/user/edit.html" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/web/templates/user/reset_pwd.html" beforeDir="false" afterPath="$PROJECT_DIR$/web/templates/user/reset_pwd.html" afterDir="false" />
|
||||
</list>
|
||||
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
|
||||
<option name="SHOW_DIALOG" value="false" />
|
||||
@@ -15,15 +32,101 @@
|
||||
<file pinned="false" current-in-tab="true">
|
||||
<entry file="file://$PROJECT_DIR$/web/controllers/user/User.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="378">
|
||||
<caret line="56" column="19" selection-start-line="56" selection-start-column="19" selection-end-line="56" selection-end-column="19" />
|
||||
<state relative-caret-position="1268">
|
||||
<caret line="117" lean-forward="true" selection-start-line="117" selection-end-line="117" />
|
||||
<folding>
|
||||
<element signature="e#24#108#0" expanded="true" />
|
||||
<element signature="e#24#91#0" expanded="true" />
|
||||
<element signature="e#461#1600#0" />
|
||||
<element signature="e#1670#2484#0" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/web/templates/user/reset_pwd.html">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="62">
|
||||
<caret line="2" selection-start-line="2" selection-end-line="2" selection-end-column="36" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/web/templates/common/tab_user.html">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="279">
|
||||
<caret line="9" column="21" lean-forward="true" selection-start-line="9" selection-start-column="21" selection-end-line="9" selection-end-column="21" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/web/templates/common/layout_main.html">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="465">
|
||||
<caret line="82" column="56" selection-start-line="82" selection-start-column="44" selection-end-line="82" selection-end-column="56" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/web/templates/common/layout_user.html">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="310">
|
||||
<caret line="16" lean-forward="true" selection-start-line="16" selection-end-line="16" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/common/libs/Helper.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="217">
|
||||
<caret line="7" column="3" lean-forward="true" selection-start-line="7" selection-start-column="3" selection-end-line="7" selection-end-column="3" />
|
||||
<folding>
|
||||
<element signature="e#24#59#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/web/static/js/user/reset_pwd.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="341">
|
||||
<caret line="11" column="13" lean-forward="true" selection-start-line="11" selection-start-column="13" selection-end-line="11" selection-end-column="13" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/web/templates/user/edit.html">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="62">
|
||||
<caret line="2" column="36" selection-start-line="2" selection-start-column="36" selection-end-line="2" selection-end-column="36" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/web/templates/user/login.html">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="355">
|
||||
<caret line="42" selection-start-line="42" selection-end-line="44" selection-end-column="14" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/web/static/js/user/edit.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="372">
|
||||
<caret line="12" lean-forward="true" selection-start-line="12" selection-end-line="12" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
</leaf>
|
||||
</component>
|
||||
<component name="FileTemplateManagerImpl">
|
||||
@@ -38,7 +141,11 @@
|
||||
<find>register_blueprint</find>
|
||||
<find>route_user</find>
|
||||
<find>login_name</find>
|
||||
<find>render_template</find>
|
||||
</findStrings>
|
||||
<replaceStrings>
|
||||
<replace>ops_render</replace>
|
||||
</replaceStrings>
|
||||
</component>
|
||||
<component name="Git.Settings">
|
||||
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
|
||||
@@ -53,8 +160,6 @@
|
||||
<option value="$PROJECT_DIR$/docs/mysql.md" />
|
||||
<option value="$PROJECT_DIR$/readme.md" />
|
||||
<option value="$PROJECT_DIR$/manager.py" />
|
||||
<option value="$PROJECT_DIR$/web/controllers/index.py" />
|
||||
<option value="$PROJECT_DIR$/web/controllers/account/Account.py" />
|
||||
<option value="$PROJECT_DIR$/mina/project.config.json" />
|
||||
<option value="$PROJECT_DIR$/common/models/User.py" />
|
||||
<option value="$PROJECT_DIR$/config/local_setting.py" />
|
||||
@@ -67,8 +172,19 @@
|
||||
<option value="$PROJECT_DIR$/web/static/js/user/login.js" />
|
||||
<option value="$PROJECT_DIR$/www.py" />
|
||||
<option value="$PROJECT_DIR$/config/base_setting.py" />
|
||||
<option value="$PROJECT_DIR$/web/templates/common/layout_main.html" />
|
||||
<option value="$PROJECT_DIR$/common/libs/user/Helper.py" />
|
||||
<option value="$PROJECT_DIR$/web/interceptors/AuthInterceptor.py" />
|
||||
<option value="$PROJECT_DIR$/web/controllers/index.py" />
|
||||
<option value="$PROJECT_DIR$/web/controllers/stat/Stat.py" />
|
||||
<option value="$PROJECT_DIR$/web/controllers/member/Member.py" />
|
||||
<option value="$PROJECT_DIR$/web/controllers/food/Food.py" />
|
||||
<option value="$PROJECT_DIR$/web/controllers/finance/Finance.py" />
|
||||
<option value="$PROJECT_DIR$/web/controllers/account/Account.py" />
|
||||
<option value="$PROJECT_DIR$/web/static/js/user/edit.js" />
|
||||
<option value="$PROJECT_DIR$/common/libs/Helper.py" />
|
||||
<option value="$PROJECT_DIR$/web/controllers/user/User.py" />
|
||||
<option value="$PROJECT_DIR$/web/templates/user/edit.html" />
|
||||
</list>
|
||||
</option>
|
||||
</component>
|
||||
@@ -82,9 +198,9 @@
|
||||
<packageJsonPaths />
|
||||
</component>
|
||||
<component name="ProjectFrameBounds">
|
||||
<option name="x" value="678" />
|
||||
<option name="y" value="36" />
|
||||
<option name="width" value="1038" />
|
||||
<option name="x" value="811" />
|
||||
<option name="y" value="2" />
|
||||
<option name="width" value="1105" />
|
||||
<option name="height" value="1028" />
|
||||
</component>
|
||||
<component name="ProjectLevelVcsManager" settingsEditedManually="true" />
|
||||
@@ -93,7 +209,6 @@
|
||||
<foldersAlwaysOnTop value="true" />
|
||||
</navigator>
|
||||
<panes>
|
||||
<pane id="Scope" />
|
||||
<pane id="ProjectPane">
|
||||
<subPane>
|
||||
<expand>
|
||||
@@ -112,24 +227,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" />
|
||||
<item name="common" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="models" 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" />
|
||||
@@ -150,136 +247,66 @@
|
||||
</path>
|
||||
<path>
|
||||
<item name="order" type="b2602c69:ProjectViewProjectNode" />
|
||||
<item name="External Libraries" type="cb654da1:ExternalLibrariesNode" />
|
||||
<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="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="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="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="user" type="462c0819:PsiDirectoryNode" />
|
||||
</path>
|
||||
<path>
|
||||
<item name="order" type="b2602c69:ProjectViewProjectNode" />
|
||||
<item name="External Libraries" type="cb654da1:ExternalLibrariesNode" />
|
||||
<item name="< Python 3.5 (order) (2) >" type="70bed36:NamedLibraryElementNode" />
|
||||
</path>
|
||||
<path>
|
||||
<item name="order" type="b2602c69:ProjectViewProjectNode" />
|
||||
<item name="External Libraries" type="cb654da1:ExternalLibrariesNode" />
|
||||
<item name="< Python 3.5 (order) (2) >" type="70bed36:NamedLibraryElementNode" />
|
||||
<item name="site-packages" type="462c0819:PsiDirectoryNode" />
|
||||
</path>
|
||||
<path>
|
||||
<item name="order" type="b2602c69:ProjectViewProjectNode" />
|
||||
<item name="External Libraries" type="cb654da1:ExternalLibrariesNode" />
|
||||
<item name="< Python 3.5 (order) (2) >" type="70bed36:NamedLibraryElementNode" />
|
||||
<item name="site-packages" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="flask" type="462c0819:PsiDirectoryNode" />
|
||||
</path>
|
||||
<path>
|
||||
<item name="order" type="b2602c69:ProjectViewProjectNode" />
|
||||
<item name="External Libraries" type="cb654da1:ExternalLibrariesNode" />
|
||||
<item name="< Python 3.5 (order) (2) >" type="70bed36:NamedLibraryElementNode" />
|
||||
<item name="site-packages" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="flask_sqlalchemy" type="462c0819:PsiDirectoryNode" />
|
||||
</path>
|
||||
<path>
|
||||
<item name="order" type="b2602c69:ProjectViewProjectNode" />
|
||||
<item name="External Libraries" type="cb654da1:ExternalLibrariesNode" />
|
||||
<item name="< Python 3.5 (order) (2) >" type="70bed36:NamedLibraryElementNode" />
|
||||
<item name="site-packages" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="sqlalchemy" type="462c0819:PsiDirectoryNode" />
|
||||
</path>
|
||||
<path>
|
||||
<item name="order" type="b2602c69:ProjectViewProjectNode" />
|
||||
<item name="External Libraries" type="cb654da1:ExternalLibrariesNode" />
|
||||
<item name="< Python 3.5 (order) (2) >" type="70bed36:NamedLibraryElementNode" />
|
||||
<item name="site-packages" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="sqlalchemy" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="dialects" type="462c0819:PsiDirectoryNode" />
|
||||
</path>
|
||||
<path>
|
||||
<item name="order" type="b2602c69:ProjectViewProjectNode" />
|
||||
<item name="External Libraries" type="cb654da1:ExternalLibrariesNode" />
|
||||
<item name="< Python 3.5 (order) (2) >" type="70bed36:NamedLibraryElementNode" />
|
||||
<item name="site-packages" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="sqlalchemy" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="dialects" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="mysql" type="462c0819:PsiDirectoryNode" />
|
||||
</path>
|
||||
<path>
|
||||
<item name="order" type="b2602c69:ProjectViewProjectNode" />
|
||||
<item name="External Libraries" type="cb654da1:ExternalLibrariesNode" />
|
||||
<item name="< Python 3.5 (order) (2) >" type="70bed36:NamedLibraryElementNode" />
|
||||
<item name="venv" type="462c0819:PsiDirectoryNode" />
|
||||
</path>
|
||||
<path>
|
||||
<item name="order" type="b2602c69:ProjectViewProjectNode" />
|
||||
<item name="External Libraries" type="cb654da1:ExternalLibrariesNode" />
|
||||
<item name="< Python 3.5 (order) (2) >" type="70bed36:NamedLibraryElementNode" />
|
||||
<item name="venv" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="Lib" type="462c0819:PsiDirectoryNode" />
|
||||
</path>
|
||||
<path>
|
||||
<item name="order" type="b2602c69:ProjectViewProjectNode" />
|
||||
<item name="External Libraries" type="cb654da1:ExternalLibrariesNode" />
|
||||
<item name="< Python 3.5 (order) (2) >" type="70bed36:NamedLibraryElementNode" />
|
||||
<item name="venv" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="Lib" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="site-packages" type="462c0819:PsiDirectoryNode" />
|
||||
</path>
|
||||
<path>
|
||||
<item name="order" type="b2602c69:ProjectViewProjectNode" />
|
||||
<item name="External Libraries" type="cb654da1:ExternalLibrariesNode" />
|
||||
<item name="< Python 3.5 (order) (2) >" type="70bed36:NamedLibraryElementNode" />
|
||||
<item name="venv" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="Lib" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="site-packages" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="flask" type="462c0819:PsiDirectoryNode" />
|
||||
</path>
|
||||
<path>
|
||||
<item name="order" type="b2602c69:ProjectViewProjectNode" />
|
||||
<item name="External Libraries" type="cb654da1:ExternalLibrariesNode" />
|
||||
<item name="< Python 3.5 (order) (2) >" type="70bed36:NamedLibraryElementNode" />
|
||||
<item name="venv" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="Lib" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="site-packages" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="flask_sqlalchemy" type="462c0819:PsiDirectoryNode" />
|
||||
</path>
|
||||
<path>
|
||||
<item name="order" type="b2602c69:ProjectViewProjectNode" />
|
||||
<item name="External Libraries" type="cb654da1:ExternalLibrariesNode" />
|
||||
<item name="< Python 3.5 (order) (2) >" type="70bed36:NamedLibraryElementNode" />
|
||||
<item name="venv" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="Lib" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="site-packages" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="sqlalchemy" type="462c0819:PsiDirectoryNode" />
|
||||
</path>
|
||||
<path>
|
||||
<item name="order" type="b2602c69:ProjectViewProjectNode" />
|
||||
<item name="External Libraries" type="cb654da1:ExternalLibrariesNode" />
|
||||
<item name="< Python 3.5 (order) (2) >" type="70bed36:NamedLibraryElementNode" />
|
||||
<item name="venv" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="Lib" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="site-packages" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="sqlalchemy" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="dialects" type="462c0819:PsiDirectoryNode" />
|
||||
</path>
|
||||
<path>
|
||||
<item name="order" type="b2602c69:ProjectViewProjectNode" />
|
||||
<item name="External Libraries" type="cb654da1:ExternalLibrariesNode" />
|
||||
<item name="< Python 3.5 (order) (2) >" type="70bed36:NamedLibraryElementNode" />
|
||||
<item name="venv" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="Lib" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="site-packages" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="sqlalchemy" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="dialects" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="mysql" type="462c0819:PsiDirectoryNode" />
|
||||
</path>
|
||||
</expand>
|
||||
<select />
|
||||
</subPane>
|
||||
</pane>
|
||||
<pane id="Scope" />
|
||||
</panes>
|
||||
</component>
|
||||
<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$" />
|
||||
<property name="last_opened_file_path" value="$PROJECT_DIR$/web/templates/common" />
|
||||
<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" />
|
||||
@@ -289,17 +316,17 @@
|
||||
<property name="settings.editor.selected.configurable" value="com.jetbrains.python.configuration.PyActiveSdkModuleConfigurable" />
|
||||
</component>
|
||||
<component name="RecentsManager">
|
||||
<key name="MoveFile.RECENT_KEYS">
|
||||
<recent name="D:\order\web" />
|
||||
<recent name="D:\order\common\libs" />
|
||||
<recent name="D:\order\web\controllers\user" />
|
||||
</key>
|
||||
<key name="CopyFile.RECENT_KEYS">
|
||||
<recent name="D:\order\web" />
|
||||
<recent name="D:\order\web\templates\common" />
|
||||
<recent name="D:\order\web\static\js\user" />
|
||||
<recent name="D:\order\common\libs" />
|
||||
<recent name="D:\order\web\templates\user" />
|
||||
<recent name="D:\order" />
|
||||
<recent name="D:\order\web\controllers" />
|
||||
<recent name="D:\order\web" />
|
||||
</key>
|
||||
<key name="MoveFile.RECENT_KEYS">
|
||||
<recent name="D:\order\common\libs" />
|
||||
<recent name="D:\order\web" />
|
||||
<recent name="D:\order\web\controllers\user" />
|
||||
</key>
|
||||
</component>
|
||||
<component name="RunDashboard">
|
||||
@@ -354,7 +381,14 @@
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1563704687324</updated>
|
||||
</task>
|
||||
<option name="localTasksCounter" value="5" />
|
||||
<task id="LOCAL-00005" summary="python学习">
|
||||
<created>1563704939157</created>
|
||||
<option name="number" value="00005" />
|
||||
<option name="presentableId" value="LOCAL-00005" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1563704939157</updated>
|
||||
</task>
|
||||
<option name="localTasksCounter" value="6" />
|
||||
<servers />
|
||||
</component>
|
||||
<component name="TodoView">
|
||||
@@ -367,16 +401,17 @@
|
||||
</todo-panel>
|
||||
</component>
|
||||
<component name="ToolWindowManager">
|
||||
<frame x="456" y="3" width="1038" height="1028" extended-state="0" />
|
||||
<frame x="811" y="2" width="1105" height="1028" extended-state="1" />
|
||||
<editor active="true" />
|
||||
<layout>
|
||||
<window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.197" />
|
||||
<window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.23430178" />
|
||||
<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" />
|
||||
<window_info id="DB Browser" order="4" weight="0.32911393" />
|
||||
<window_info id="Job Explorer" order="5" />
|
||||
<window_info anchor="bottom" id="Message" order="0" />
|
||||
<window_info anchor="bottom" id="Find" order="1" />
|
||||
<window_info anchor="bottom" id="Find" order="1" weight="0.32960895" />
|
||||
<window_info anchor="bottom" id="Run" order="2" />
|
||||
<window_info anchor="bottom" id="Debug" order="3" weight="0.4" />
|
||||
<window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
|
||||
@@ -384,7 +419,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.4111732" />
|
||||
<window_info anchor="bottom" id="Terminal" order="9" visible="true" weight="0.29608938" />
|
||||
<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" />
|
||||
@@ -408,22 +443,6 @@
|
||||
<option name="LAST_COMMIT_MESSAGE" value="python学习" />
|
||||
</component>
|
||||
<component name="editorHistoryManager">
|
||||
<entry file="file://$PROJECT_DIR$/imooc.py" />
|
||||
<entry file="file:///Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/flask/helpers.py" />
|
||||
<entry file="file:///Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/flask_sqlalchemy/__init__.py" />
|
||||
<entry file="file://$PROJECT_DIR$/Hello.py" />
|
||||
<entry file="file://$PROJECT_DIR$/config/production_setting.py">
|
||||
<provider selected="true" editor-type-id="text-editor" />
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/docs/mysql.md">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="54">
|
||||
<caret line="1" column="18" selection-start-line="1" selection-start-column="18" selection-end-line="1" selection-end-column="18" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file:///Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/flask_script/commands.py" />
|
||||
<entry file="file:///Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/flask_script/__init__.py" />
|
||||
<entry file="file:///Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/flask/app.py" />
|
||||
<entry file="file://$PROJECT_DIR$/web/templates/food/cat.html">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
@@ -456,9 +475,6 @@
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/web/templates/user/edit.html">
|
||||
<provider selected="true" editor-type-id="text-editor" />
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/web/controllers/static.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="186">
|
||||
@@ -466,40 +482,6 @@
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/web/controllers/index.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="155">
|
||||
<caret line="5" column="23" lean-forward="true" selection-start-line="5" selection-start-column="23" selection-end-line="5" selection-end-column="23" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/web/templates/common/layout_main.html">
|
||||
<provider selected="true" editor-type-id="text-editor" />
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/web/templates/common/layout_user.html">
|
||||
<provider selected="true" editor-type-id="text-editor" />
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/web/controllers/food/Food.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="372">
|
||||
<caret line="12" selection-start-line="12" selection-end-line="12" />
|
||||
</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="31">
|
||||
<caret line="7" column="18" selection-start-line="7" selection-start-column="18" selection-end-line="7" selection-end-column="18" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/web/controllers/member/Member.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="279">
|
||||
<caret line="12" selection-start-line="12" selection-end-line="12" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/mina/app.json">
|
||||
<provider selected="true" editor-type-id="text-editor" />
|
||||
</entry>
|
||||
@@ -520,19 +502,6 @@
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/readme.md">
|
||||
<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>
|
||||
<provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]">
|
||||
<state split_layout="SPLIT">
|
||||
<first_editor />
|
||||
<second_editor />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/venv/Lib/site-packages/flask_sqlalchemy/__init__.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="-28">
|
||||
@@ -592,13 +561,6 @@
|
||||
<entry file="file://$PROJECT_DIR$/common/libs/user/__init__.py">
|
||||
<provider selected="true" editor-type-id="text-editor" />
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/web/templates/user/login.html">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="583">
|
||||
<caret line="44" column="14" lean-forward="true" selection-start-line="44" selection-start-column="14" selection-end-line="44" selection-end-column="14" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/config/__init__.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="31">
|
||||
@@ -640,13 +602,6 @@
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/web/static/js/user/login.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="186">
|
||||
<caret line="24" column="20" lean-forward="true" selection-start-line="24" selection-start-column="20" selection-end-line="24" selection-end-column="20" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/common/libs/user/UserService.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="186">
|
||||
@@ -657,18 +612,7 @@
|
||||
<entry file="file://$PROJECT_DIR$/web/interceptors/__init__.py">
|
||||
<provider selected="true" editor-type-id="text-editor" />
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/web/interceptors/ErrorInterceptor.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state>
|
||||
<folding>
|
||||
<element signature="e#24#52#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/web/interceptors/ApiAuthInterceptor.py">
|
||||
<provider selected="true" editor-type-id="text-editor" />
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/web/interceptors/ErrorInterceptor.py" />
|
||||
<entry file="file://$PROJECT_DIR$/www.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="93">
|
||||
@@ -683,22 +627,161 @@
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/web/interceptors/AuthInterceptor.py">
|
||||
<entry file="file://$PROJECT_DIR$/README.en.md" />
|
||||
<entry file="file://$PROJECT_DIR$/web/interceptors/ApiAuthInterceptor.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="155">
|
||||
<caret line="38" lean-forward="true" selection-start-line="38" selection-end-line="38" />
|
||||
<state relative-caret-position="-558">
|
||||
<folding>
|
||||
<element signature="e#24#51#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/readme.md">
|
||||
<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>
|
||||
<provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]">
|
||||
<state split_layout="SPLIT">
|
||||
<first_editor />
|
||||
<second_editor />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/web/interceptors/AuthInterceptor.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="339">
|
||||
<caret line="20" column="29" lean-forward="true" selection-start-line="20" selection-start-column="29" selection-end-line="20" selection-end-column="29" />
|
||||
<folding>
|
||||
<element signature="e#24#51#0" expanded="true" />
|
||||
</folding>
|
||||
</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">
|
||||
<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">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="238">
|
||||
<caret line="12" selection-start-line="12" selection-end-line="12" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/web/controllers/food/Food.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="114">
|
||||
<caret line="13" selection-start-line="13" selection-end-line="13" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/web/controllers/finance/Finance.py">
|
||||
<provider selected="true" editor-type-id="text-editor" />
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/web/controllers/account/Account.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="248">
|
||||
<caret line="8" column="18" selection-start-line="8" selection-start-column="18" selection-end-line="8" selection-end-column="18" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/web/static/js/user/login.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="31">
|
||||
<caret line="8" column="7" selection-start-line="8" selection-start-column="7" selection-end-line="11" selection-end-column="13" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/web/controllers/index.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="217">
|
||||
<caret line="7" column="13" selection-start-line="7" selection-start-column="13" selection-end-line="7" selection-end-column="13" />
|
||||
<folding>
|
||||
<element signature="e#24#51#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/web/static/js/user/edit.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="372">
|
||||
<caret line="12" lean-forward="true" selection-start-line="12" selection-end-line="12" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/web/static/js/user/reset_pwd.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="341">
|
||||
<caret line="11" column="13" lean-forward="true" selection-start-line="11" selection-start-column="13" selection-end-line="11" selection-end-column="13" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/web/templates/common/layout_main.html">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="465">
|
||||
<caret line="82" column="56" selection-start-line="82" selection-start-column="44" selection-end-line="82" selection-end-column="56" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/web/templates/common/layout_user.html">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="310">
|
||||
<caret line="16" lean-forward="true" selection-start-line="16" selection-end-line="16" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/common/libs/Helper.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="217">
|
||||
<caret line="7" column="3" lean-forward="true" selection-start-line="7" selection-start-column="3" selection-end-line="7" selection-end-column="3" />
|
||||
<folding>
|
||||
<element signature="e#24#59#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/web/templates/user/login.html">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="355">
|
||||
<caret line="42" selection-start-line="42" selection-end-line="44" selection-end-column="14" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/web/templates/user/edit.html">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="62">
|
||||
<caret line="2" column="36" selection-start-line="2" selection-start-column="36" selection-end-line="2" selection-end-column="36" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/web/templates/user/reset_pwd.html">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="62">
|
||||
<caret line="2" selection-start-line="2" selection-end-line="2" selection-end-column="36" />
|
||||
</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">
|
||||
<caret line="9" column="21" lean-forward="true" selection-start-line="9" selection-start-column="21" selection-end-line="9" selection-end-column="21" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/web/controllers/user/User.py">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="378">
|
||||
<caret line="56" column="19" selection-start-line="56" selection-start-column="19" selection-end-line="56" selection-end-column="19" />
|
||||
<state relative-caret-position="1268">
|
||||
<caret line="117" lean-forward="true" selection-start-line="117" selection-end-line="117" />
|
||||
<folding>
|
||||
<element signature="e#24#108#0" expanded="true" />
|
||||
<element signature="e#24#91#0" expanded="true" />
|
||||
<element signature="e#461#1600#0" />
|
||||
<element signature="e#1670#2484#0" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
|
||||
36
README.en.md
36
README.en.md
@@ -1,36 +0,0 @@
|
||||
# order
|
||||
|
||||
#### Description
|
||||
python学习
|
||||
|
||||
#### Software Architecture
|
||||
Software architecture description
|
||||
|
||||
#### Installation
|
||||
|
||||
1. xxxx
|
||||
2. xxxx
|
||||
3. xxxx
|
||||
|
||||
#### Instructions
|
||||
|
||||
1. xxxx
|
||||
2. xxxx
|
||||
3. xxxx
|
||||
|
||||
#### Contribution
|
||||
|
||||
1. Fork the repository
|
||||
2. Create Feat_xxx branch
|
||||
3. Commit your code
|
||||
4. Create Pull Request
|
||||
|
||||
|
||||
#### Gitee Feature
|
||||
|
||||
1. You can use Readme\_XXX.md to support different languages, such as Readme\_en.md, Readme\_zh.md
|
||||
2. Gitee blog [blog.gitee.com](https://blog.gitee.com)
|
||||
3. Explore open source project [https://gitee.com/explore](https://gitee.com/explore)
|
||||
4. The most valuable open source project [GVP](https://gitee.com/gvp)
|
||||
5. The manual of Gitee [https://gitee.com/help](https://gitee.com/help)
|
||||
6. The most popular members [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)
|
||||
37
README.md
37
README.md
@@ -1,37 +0,0 @@
|
||||
# order
|
||||
|
||||
#### 介绍
|
||||
python学习
|
||||
|
||||
#### 软件架构
|
||||
软件架构说明
|
||||
|
||||
|
||||
#### 安装教程
|
||||
|
||||
1. xxxx
|
||||
2. xxxx
|
||||
3. xxxx
|
||||
|
||||
#### 使用说明
|
||||
|
||||
1. xxxx
|
||||
2. xxxx
|
||||
3. xxxx
|
||||
|
||||
#### 参与贡献
|
||||
|
||||
1. Fork 本仓库
|
||||
2. 新建 Feat_xxx 分支
|
||||
3. 提交代码
|
||||
4. 新建 Pull Request
|
||||
|
||||
|
||||
#### 码云特技
|
||||
|
||||
1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md
|
||||
2. 码云官方博客 [blog.gitee.com](https://blog.gitee.com)
|
||||
3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解码云上的优秀开源项目
|
||||
4. [GVP](https://gitee.com/gvp) 全称是码云最有价值开源项目,是码云综合评定出的优秀开源项目
|
||||
5. 码云官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help)
|
||||
6. 码云封面人物是一档用来展示码云会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)
|
||||
12
common/libs/Helper.py
Normal file
12
common/libs/Helper.py
Normal file
@@ -0,0 +1,12 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from flask import g,render_template
|
||||
import datetime
|
||||
|
||||
|
||||
'''
|
||||
统一渲染方法
|
||||
'''
|
||||
def ops_render( template,context = {} ):
|
||||
if 'current_user' in g:
|
||||
context['current_user'] = g.current_user
|
||||
return render_template( template,**context )
|
||||
9
readme.md
Normal file
9
readme.md
Normal file
@@ -0,0 +1,9 @@
|
||||
Python Flask订餐系统
|
||||
=====================
|
||||
##启动
|
||||
* export ops_config=local|production && python manage.py runserver
|
||||
|
||||
##flask-sqlacodegen
|
||||
|
||||
flask-sqlacodegen 'mysql://root:123456@127.0.0.1/food_db' --outfile "common/models/model.py" --flask
|
||||
flask-sqlacodegen 'mysql://root:123456@127.0.0.1/food_db' --tables user --outfile "common/models/user.py" --flask
|
||||
@@ -1,16 +1,17 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from flask import Blueprint,render_template
|
||||
from flask import Blueprint
|
||||
from common.libs.Helper import ops_render
|
||||
|
||||
route_account = Blueprint( 'account_page',__name__ )
|
||||
|
||||
@route_account.route( "/index" )
|
||||
def index():
|
||||
return render_template( "account/index.html" )
|
||||
return ops_render( "account/index.html" )
|
||||
|
||||
@route_account.route( "/info" )
|
||||
def info():
|
||||
return render_template( "account/info.html" )
|
||||
return ops_render( "account/info.html" )
|
||||
|
||||
@route_account.route( "/set" )
|
||||
def set():
|
||||
return render_template( "account/set.html" )
|
||||
return ops_render( "account/set.html" )
|
||||
|
||||
@@ -1,16 +1,17 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from flask import Blueprint,render_template
|
||||
from flask import Blueprint
|
||||
from common.libs.Helper import ops_render
|
||||
|
||||
route_finance = Blueprint( 'finance_page',__name__ )
|
||||
|
||||
@route_finance.route( "/index" )
|
||||
def index():
|
||||
return render_template( "finance/index.html" )
|
||||
return ops_render( "finance/index.html" )
|
||||
|
||||
@route_finance.route( "/pay-info" )
|
||||
def payInfo():
|
||||
return render_template( "finance/pay_info.html" )
|
||||
return ops_render( "finance/pay_info.html" )
|
||||
|
||||
@route_finance.route( "/account" )
|
||||
def account():
|
||||
return render_template( "finance/account.html" )
|
||||
return ops_render( "finance/account.html" )
|
||||
|
||||
@@ -1,26 +1,27 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from flask import Blueprint,render_template
|
||||
from flask import Blueprint
|
||||
from common.libs.Helper import ops_render
|
||||
|
||||
route_food = Blueprint( 'food_page',__name__ )
|
||||
|
||||
@route_food.route( "/index" )
|
||||
def index():
|
||||
return render_template( "food/index.html" )
|
||||
return ops_render( "food/index.html" )
|
||||
|
||||
@route_food.route( "/info" )
|
||||
def info():
|
||||
return render_template( "food/info.html" )
|
||||
return ops_render( "food/info.html" )
|
||||
|
||||
|
||||
@route_food.route( "/set" )
|
||||
def set():
|
||||
return render_template( "food/set.html" )
|
||||
return ops_render( "food/set.html" )
|
||||
|
||||
|
||||
@route_food.route( "/cat" )
|
||||
def cat():
|
||||
return render_template( "food/cat.html" )
|
||||
return ops_render( "food/cat.html" )
|
||||
|
||||
@route_food.route( "/cat-set" )
|
||||
def catSet():
|
||||
return render_template( "food/cat_set.html" )
|
||||
return ops_render( "food/cat_set.html" )
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from flask import Blueprint,render_template
|
||||
|
||||
from flask import Blueprint
|
||||
from common.libs.Helper import ops_render
|
||||
route_index = Blueprint( 'index_page',__name__ )
|
||||
|
||||
@route_index.route("/")
|
||||
def index():
|
||||
return render_template( "index/index.html" )
|
||||
return ops_render( "index/index.html" )
|
||||
@@ -1,21 +1,21 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from flask import Blueprint,render_template
|
||||
|
||||
from flask import Blueprint
|
||||
from common.libs.Helper import ops_render
|
||||
route_member = Blueprint( 'member_page',__name__ )
|
||||
|
||||
@route_member.route( "/index" )
|
||||
def index():
|
||||
return render_template( "member/index.html" )
|
||||
return ops_render( "member/index.html" )
|
||||
|
||||
@route_member.route( "/info" )
|
||||
def info():
|
||||
return render_template( "member/info.html" )
|
||||
return ops_render( "member/info.html" )
|
||||
|
||||
@route_member.route( "/set" )
|
||||
def set():
|
||||
return render_template( "member/set.html" )
|
||||
return ops_render( "member/set.html" )
|
||||
|
||||
|
||||
@route_member.route( "/comment" )
|
||||
def comment():
|
||||
return render_template( "member/comment.html" )
|
||||
return ops_render( "member/comment.html" )
|
||||
|
||||
@@ -1,20 +1,20 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from flask import Blueprint,render_template
|
||||
|
||||
from flask import Blueprint
|
||||
from common.libs.Helper import ops_render
|
||||
route_stat = Blueprint( 'stat_page',__name__ )
|
||||
|
||||
@route_stat.route( "/index" )
|
||||
def index():
|
||||
return render_template( "stat/index.html" )
|
||||
return ops_render( "stat/index.html" )
|
||||
|
||||
@route_stat.route( "/food" )
|
||||
def food():
|
||||
return render_template( "stat/food.html" )
|
||||
return ops_render( "stat/food.html" )
|
||||
|
||||
@route_stat.route( "/member" )
|
||||
def memebr():
|
||||
return render_template( "stat/member.html" )
|
||||
return ops_render( "stat/member.html" )
|
||||
|
||||
@route_stat.route( "/share" )
|
||||
def share():
|
||||
return render_template( "stat/share.html" )
|
||||
return ops_render( "stat/share.html" )
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from flask import Blueprint, render_template, request,jsonify,make_response,redirect
|
||||
from flask import Blueprint, request,jsonify,make_response,redirect,g
|
||||
from common.models.User import User
|
||||
from common.libs.user.UserService import UserService
|
||||
from common.libs.Helper import (ops_render)
|
||||
from application import app,db
|
||||
import json
|
||||
from common.libs.UrlManager import UrlManager
|
||||
@@ -13,7 +14,7 @@ route_user = Blueprint('user_page', __name__)
|
||||
@route_user.route("/login")
|
||||
def login():
|
||||
if request.method == "GET":
|
||||
return render_template("user/login.html")
|
||||
return ops_render("user/login.html")
|
||||
resp = {'code': 200, 'msg': '登录成功', 'data': {}}
|
||||
req = request.values
|
||||
login_name = req['login_name'] if 'login_name' in req else ''
|
||||
@@ -45,14 +46,81 @@ def login():
|
||||
return response
|
||||
|
||||
|
||||
@route_user.route("/edit")
|
||||
@route_user.route("/edit",methods=["GET", "POST"])
|
||||
def edit():
|
||||
return render_template("user/edit.html")
|
||||
# if request.method == "GET":
|
||||
# return ops_render("user/edit.html")
|
||||
|
||||
if request.method == "GET":
|
||||
return ops_render("user/edit.html", {'current': 'edit'})
|
||||
|
||||
resp = {'code': 200, 'msg': '操作成功~', 'data': {}}
|
||||
req = request.values
|
||||
nickname = req['nickname'] if 'nickname' in req else ''
|
||||
email = req['email'] if 'email' in req else ''
|
||||
|
||||
if nickname is None or len(nickname) < 1:
|
||||
resp['code'] = -1
|
||||
resp['msg'] = "请输入符合规范的姓名~~"
|
||||
return jsonify(resp)
|
||||
|
||||
if email is None or len(email) < 1:
|
||||
resp['code'] = -1
|
||||
resp['msg'] = "请输入符合规范的邮箱~~"
|
||||
return jsonify(resp)
|
||||
|
||||
user_info = g.current_user
|
||||
user_info.nickname = nickname
|
||||
user_info.email = email
|
||||
|
||||
db.session.add(user_info)
|
||||
db.session.commit()
|
||||
return jsonify(resp)
|
||||
|
||||
|
||||
@route_user.route("/reset-pwd")
|
||||
@route_user.route("/reset-pwd",methods=["GET", "POST"])
|
||||
def resetPwd():
|
||||
return render_template("user/reset_pwd.html")
|
||||
if request.method == "GET":
|
||||
return ops_render("user/reset_pwd.html", {'current': 'reset-pwd'})
|
||||
|
||||
resp = {'code': 200, 'msg': '操作成功~', 'data': {}}
|
||||
req = request.values
|
||||
|
||||
old_password = req['old_password'] if 'old_password' in req else ''
|
||||
new_password = req['new_password'] if 'new_password' in req else ''
|
||||
|
||||
if old_password is None or len(old_password) < 6:
|
||||
resp['code'] = -1
|
||||
resp['msg'] = "请输入符合规范的原密码~~"
|
||||
return jsonify(resp)
|
||||
|
||||
if new_password is None or len(new_password) < 6:
|
||||
resp['code'] = -1
|
||||
resp['msg'] = "请输入符合规范的新密码~~"
|
||||
return jsonify(resp)
|
||||
|
||||
if old_password == new_password:
|
||||
resp['code'] = -1
|
||||
resp['msg'] = "请重新输入一个吧,新密码和原密码不能相同哦~~"
|
||||
return jsonify(resp)
|
||||
|
||||
user_info = g.current_user
|
||||
|
||||
# if user_info.uid == 1:
|
||||
# resp['code'] = -1
|
||||
# resp['msg'] = "该用户是演示账号,不准修改密码和登录用户名~~"
|
||||
# return jsonify(resp)
|
||||
|
||||
user_info.login_pwd = UserService.genePwd(new_password, user_info.login_salt)
|
||||
|
||||
db.session.add(user_info)
|
||||
db.session.commit()
|
||||
|
||||
response = make_response(json.dumps(resp))
|
||||
response.set_cookie(app.config['AUTH_COOKIE_NAME'], '%s#%s' % (
|
||||
UserService.geneAuthCode(user_info), user_info.uid), 60 * 60 * 24 * 120) # 保存120天
|
||||
return response
|
||||
|
||||
|
||||
@route_user.route("/logout")
|
||||
def logout():
|
||||
|
||||
@@ -19,6 +19,9 @@ def before_request():
|
||||
return
|
||||
|
||||
user_info = check_login()
|
||||
g.current_user=None
|
||||
if user_info:
|
||||
g.current_user=user_info
|
||||
|
||||
pattern = re.compile('%s' % "|".join(ignore_urls))
|
||||
if pattern.match(path):
|
||||
|
||||
61
web/static/js/user/edit.js
Normal file
61
web/static/js/user/edit.js
Normal file
@@ -0,0 +1,61 @@
|
||||
;
|
||||
var user_edit_ops = {
|
||||
init:function(){
|
||||
this.eventBind();
|
||||
},
|
||||
eventBind:function(){
|
||||
$(".user_edit_wrap .save").click(function(){
|
||||
var btn_target = $(this);
|
||||
if( btn_target.hasClass("disabled") ){
|
||||
common_ops.alert("正在处理!!请不要重复提交~~");
|
||||
return;
|
||||
}
|
||||
|
||||
var nickname_target = $(".user_edit_wrap input[name=nickname]");
|
||||
var nickname = nickname_target.val();
|
||||
|
||||
var email_target = $(".user_edit_wrap input[name=email]");
|
||||
var email = email_target.val();
|
||||
|
||||
if( !nickname || nickname.length < 2 ){
|
||||
common_ops.tip( "请输入符合规范的姓名~~",nickname_target );
|
||||
return false;
|
||||
}
|
||||
|
||||
if( !email || email.length < 2 ){
|
||||
common_ops.tip( "请输入符合规范的邮箱~~",nickname_target );
|
||||
return false;
|
||||
}
|
||||
|
||||
btn_target.addClass("disabled");
|
||||
|
||||
var data = {
|
||||
nickname: nickname,
|
||||
email: email
|
||||
};
|
||||
|
||||
$.ajax({
|
||||
url:common_ops.buildUrl( "/user/edit" ),
|
||||
type:'POST',
|
||||
data:data,
|
||||
dataType:'json',
|
||||
success:function( res ){
|
||||
btn_target.removeClass("disabled");
|
||||
var callback = null;
|
||||
if( res.code == 200 ){
|
||||
callback = function(){
|
||||
window.location.href = window.location.href;
|
||||
}
|
||||
}
|
||||
common_ops.alert( res.msg,callback );
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
$(document).ready( function(){
|
||||
user_edit_ops.init();
|
||||
} );
|
||||
59
web/static/js/user/reset_pwd.js
Normal file
59
web/static/js/user/reset_pwd.js
Normal file
@@ -0,0 +1,59 @@
|
||||
;
|
||||
var mod_pwd_ops = {
|
||||
init:function(){
|
||||
this.eventBind();
|
||||
},
|
||||
eventBind:function(){
|
||||
$("#save").click(function(){
|
||||
var btn_target = $(this);
|
||||
if( btn_target.hasClass("disabled") ){
|
||||
common_ops.alert("正在处理!!请不要重复提交~~");
|
||||
return;
|
||||
}
|
||||
|
||||
var old_password = $("#old_password").val();
|
||||
var new_password = $("#new_password").val();
|
||||
|
||||
|
||||
if( !old_password ){
|
||||
common_ops.alert( "请输入原密码~~" );
|
||||
return false;
|
||||
}
|
||||
|
||||
if( !new_password || new_password.length < 6 ){
|
||||
common_ops.alert( "请输入不少于6位的新密码~~" );
|
||||
return false;
|
||||
}
|
||||
|
||||
btn_target.addClass("disabled");
|
||||
|
||||
var data = {
|
||||
old_password: old_password,
|
||||
new_password: new_password
|
||||
};
|
||||
|
||||
$.ajax({
|
||||
url:common_ops.buildUrl( "/user/reset-pwd" ),
|
||||
type:'POST',
|
||||
data:data,
|
||||
dataType:'json',
|
||||
success:function( res ){
|
||||
btn_target.removeClass("disabled");
|
||||
var callback = null;
|
||||
if( res.code == 200 ){
|
||||
callback = function(){
|
||||
window.location.href = window.location.href;
|
||||
}
|
||||
}
|
||||
common_ops.alert( res.msg,callback );
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
$(document).ready( function(){
|
||||
mod_pwd_ops.init();
|
||||
} );
|
||||
@@ -56,7 +56,8 @@
|
||||
<div class="row border-bottom">
|
||||
<nav class="navbar navbar-static-top" role="navigation" style="margin-bottom: 0">
|
||||
<div class="navbar-header">
|
||||
<a class="navbar-minimalize minimalize-styl-2 btn btn-primary " href="javascript:void(0);"><i class="fa fa-bars"></i> </a>
|
||||
<a class="navbar-minimalize minimalize-styl-2 btn btn-primary " href="javascript:void(0);"><i
|
||||
class="fa fa-bars"></i> </a>
|
||||
</div>
|
||||
<ul class="nav navbar-top-links navbar-right">
|
||||
<li>
|
||||
@@ -66,18 +67,20 @@
|
||||
</li>
|
||||
<li class="dropdown user_info">
|
||||
<a class="dropdown-toggle" data-toggle="dropdown" href="javascript:void(0);">
|
||||
<img alt="image" class="img-circle" src="{{ buildStaticUrl('/images/common/avatar.png') }}"/>
|
||||
<img alt="image" class="img-circle"
|
||||
src="{{ buildStaticUrl('/images/common/avatar.png') }}"/>
|
||||
</a>
|
||||
<ul class="dropdown-menu dropdown-messages">
|
||||
<li>
|
||||
<div class="dropdown-messages-box">
|
||||
姓名:xxxx <a href="{{ buildUrl('/user/edit') }}" class="pull-right">编辑</a>
|
||||
姓名:{{current_user.nickname}} <a href="{{ buildUrl('/user/edit') }}"
|
||||
class="pull-right">编辑</a>
|
||||
</div>
|
||||
</li>
|
||||
<li class="divider"></li>
|
||||
<li>
|
||||
<div class="dropdown-messages-box">
|
||||
手机号码:xxxx
|
||||
手机号码:{{ current_user.mobile}}
|
||||
</div>
|
||||
</li>
|
||||
<li class="divider"></li>
|
||||
|
||||
14
web/templates/common/tab_user.html
Normal file
14
web/templates/common/tab_user.html
Normal file
@@ -0,0 +1,14 @@
|
||||
<div class="row border-bottom">
|
||||
<div class="col-lg-12">
|
||||
<div class="tab_title">
|
||||
<ul class="nav nav-pills">
|
||||
<li {% if current == "edit" %} class="current" {% endif %}>
|
||||
<a href="{{ buildUrl('/user/edit') }}">信息编辑</a>
|
||||
</li>
|
||||
<li {% if current == "reset-pwd" %} class="current" {% endif %}>
|
||||
<a href="{{ buildUrl('/user/reset-pwd') }}">修改密码</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -1,19 +1,6 @@
|
||||
{% extends "common/layout_main.html" %}
|
||||
{% block content %}
|
||||
<div class="row border-bottom">
|
||||
<div class="col-lg-12">
|
||||
<div class="tab_title">
|
||||
<ul class="nav nav-pills">
|
||||
<li class="current">
|
||||
<a href="{{ buildUrl('/user/edit') }}">信息编辑</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="{{ buildUrl('/user/edit') }}">修改密码</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% include "common/tab_user.html" %}
|
||||
<div class="row m-t user_edit_wrap">
|
||||
<div class="col-lg-12">
|
||||
<h2 class="text-center">账号信息编辑</h2>
|
||||
@@ -22,7 +9,7 @@
|
||||
<label class="col-lg-2 control-label">手机:</label>
|
||||
<div class="col-lg-10">
|
||||
<input type="text" name="mobile" class="form-control" placeholder="请输入手机~~" readonly=""
|
||||
value="11012031511">
|
||||
value="{{ current_user.mobile }}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="hr-line-dashed"></div>
|
||||
@@ -30,15 +17,14 @@
|
||||
<div class="form-group">
|
||||
<label class="col-lg-2 control-label">姓名:</label>
|
||||
<div class="col-lg-10">
|
||||
<input type="text" name="nickname" class="form-control" placeholder="请输入姓名~~" value="编程浪子2">
|
||||
</div>
|
||||
<input type="text" name="nickname" class="form-control" placeholder="请输入姓名~~" value="{{ current_user.nickname }}"> </div>
|
||||
</div>
|
||||
<div class="hr-line-dashed"></div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-lg-2 control-label">邮箱:</label>
|
||||
<div class="col-lg-10">
|
||||
<input type="text" name="email" class="form-control" placeholder="请输入邮箱~~" value="apanly@163.com">
|
||||
<input type="text" name="email" class="form-control" placeholder="请输入邮箱~~" value="{{ current_user.email }}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="hr-line-dashed"></div>
|
||||
@@ -51,3 +37,6 @@
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
{% block js %}
|
||||
<script src="{{buildStaticUrl('/js/user/edit.js')}}"></script>
|
||||
{% endblock %}
|
||||
|
||||
@@ -1,19 +1,6 @@
|
||||
{% extends "common/layout_main.html" %}
|
||||
{% block content %}
|
||||
<div class="row border-bottom">
|
||||
<div class="col-lg-12">
|
||||
<div class="tab_title">
|
||||
<ul class="nav nav-pills">
|
||||
<li>
|
||||
<a href="{{ buildUrl('/user/edit') }}">信息编辑</a>
|
||||
</li>
|
||||
<li class="current">
|
||||
<a href="{{ buildUrl('/user/edit') }}">修改密码</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% include "common/tab_user.html" %}
|
||||
<div class="row m-t user_reset_pwd_wrap">
|
||||
<div class="col-lg-12">
|
||||
<h2 class="text-center">修改密码</h2>
|
||||
@@ -21,14 +8,14 @@
|
||||
<div class="form-group">
|
||||
<label class="col-lg-2 control-label">账号:</label>
|
||||
<div class="col-lg-10">
|
||||
<label class="control-label">编程浪子2</label>
|
||||
<label class="control-label">{{ current_user.login_name }}</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="hr-line-dashed"></div>
|
||||
<div class="form-group">
|
||||
<label class="col-lg-2 control-label">手机:</label>
|
||||
<div class="col-lg-10">
|
||||
<label class="control-label">11012031511</label>
|
||||
<label class="control-label">{{ current_user.mobile }}</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="hr-line-dashed"></div>
|
||||
@@ -57,3 +44,6 @@
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
{% block js %}
|
||||
<script src="{{ buildStaticUrl('/js/user/reset_pwd.js') }}"></script>
|
||||
{% endblock %}
|
||||
|
||||
Reference in New Issue
Block a user