python学习
This commit is contained in:
191
.idea/workspace.xml
generated
191
.idea/workspace.xml
generated
@@ -2,10 +2,12 @@
|
|||||||
<project version="4">
|
<project version="4">
|
||||||
<component name="ChangeListManager">
|
<component name="ChangeListManager">
|
||||||
<list default="true" id="d564f57a-9f96-4262-9481-cacdf2b8445c" name="Default" comment="python学习">
|
<list default="true" id="d564f57a-9f96-4262-9481-cacdf2b8445c" name="Default" comment="python学习">
|
||||||
<change beforePath="$PROJECT_DIR$/common/libs/Helper.py" beforeDir="false" afterPath="$PROJECT_DIR$/common/libs/Helper.py" afterDir="false" />
|
<change afterPath="$PROJECT_DIR$/common/models/log/AppAccessLog.py" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/config/base_setting.py" beforeDir="false" afterPath="$PROJECT_DIR$/config/base_setting.py" afterDir="false" />
|
<change afterPath="$PROJECT_DIR$/common/models/log/AppErrorLog.py" afterDir="false" />
|
||||||
|
<change afterPath="$PROJECT_DIR$/web/templates/common/tab_account.html" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" 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/account/Account.py" beforeDir="false" afterPath="$PROJECT_DIR$/web/controllers/account/Account.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/info.html" beforeDir="false" afterPath="$PROJECT_DIR$/web/templates/account/info.html" afterDir="false" />
|
||||||
</list>
|
</list>
|
||||||
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
|
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
|
||||||
<option name="SHOW_DIALOG" value="false" />
|
<option name="SHOW_DIALOG" value="false" />
|
||||||
@@ -32,20 +34,60 @@
|
|||||||
<file pinned="false" current-in-tab="false">
|
<file pinned="false" current-in-tab="false">
|
||||||
<entry file="file://$PROJECT_DIR$/web/controllers/account/Account.py">
|
<entry file="file://$PROJECT_DIR$/web/controllers/account/Account.py">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="434">
|
<state relative-caret-position="226">
|
||||||
<caret line="20" lean-forward="true" selection-start-line="20" selection-end-line="20" />
|
<caret line="45" selection-start-line="45" selection-end-line="45" />
|
||||||
<folding>
|
<folding>
|
||||||
<element signature="e#24#51#0" expanded="true" />
|
<element signature="e#24#68#0" expanded="true" />
|
||||||
</folding>
|
</folding>
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
</file>
|
</file>
|
||||||
<file pinned="false" current-in-tab="true">
|
<file pinned="false" current-in-tab="true">
|
||||||
|
<entry file="file://$PROJECT_DIR$/web/templates/common/tab_account.html">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="310">
|
||||||
|
<caret line="10" column="6" lean-forward="true" selection-start-line="10" selection-start-column="6" selection-end-line="10" selection-end-column="6" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
|
<file pinned="false" current-in-tab="false">
|
||||||
|
<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" lean-forward="true" selection-start-line="66" selection-start-column="14" selection-end-line="66" selection-end-column="14" />
|
||||||
|
</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>
|
||||||
|
<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>
|
||||||
|
<folding>
|
||||||
|
<element signature="e#16#78#0" expanded="true" />
|
||||||
|
</folding>
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
|
<file pinned="false" current-in-tab="false">
|
||||||
<entry file="file://$PROJECT_DIR$/web/templates/account/index.html">
|
<entry file="file://$PROJECT_DIR$/web/templates/account/index.html">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="257">
|
<state relative-caret-position="288">
|
||||||
<caret line="96" column="6" lean-forward="true" selection-start-line="96" selection-start-column="6" selection-end-line="96" selection-end-column="6" />
|
<caret line="97" column="14" lean-forward="true" selection-start-line="97" selection-start-column="14" selection-end-line="97" selection-end-column="14" />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
@@ -80,24 +122,6 @@
|
|||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
</file>
|
</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>
|
|
||||||
</leaf>
|
</leaf>
|
||||||
</component>
|
</component>
|
||||||
<component name="FileTemplateManagerImpl">
|
<component name="FileTemplateManagerImpl">
|
||||||
@@ -154,9 +178,10 @@
|
|||||||
<option value="$PROJECT_DIR$/web/controllers/user/User.py" />
|
<option value="$PROJECT_DIR$/web/controllers/user/User.py" />
|
||||||
<option value="$PROJECT_DIR$/web/templates/user/edit.html" />
|
<option value="$PROJECT_DIR$/web/templates/user/edit.html" />
|
||||||
<option value="$PROJECT_DIR$/common/libs/Helper.py" />
|
<option value="$PROJECT_DIR$/common/libs/Helper.py" />
|
||||||
<option value="$PROJECT_DIR$/web/controllers/account/Account.py" />
|
|
||||||
<option value="$PROJECT_DIR$/config/base_setting.py" />
|
<option value="$PROJECT_DIR$/config/base_setting.py" />
|
||||||
<option value="$PROJECT_DIR$/web/templates/account/index.html" />
|
<option value="$PROJECT_DIR$/web/templates/account/index.html" />
|
||||||
|
<option value="$PROJECT_DIR$/web/templates/account/info.html" />
|
||||||
|
<option value="$PROJECT_DIR$/web/controllers/account/Account.py" />
|
||||||
</list>
|
</list>
|
||||||
</option>
|
</option>
|
||||||
</component>
|
</component>
|
||||||
@@ -199,6 +224,19 @@
|
|||||||
<item name="common" type="462c0819:PsiDirectoryNode" />
|
<item name="common" type="462c0819:PsiDirectoryNode" />
|
||||||
<item name="libs" type="462c0819:PsiDirectoryNode" />
|
<item name="libs" type="462c0819:PsiDirectoryNode" />
|
||||||
</path>
|
</path>
|
||||||
|
<path>
|
||||||
|
<item name="order" type="b2602c69:ProjectViewProjectNode" />
|
||||||
|
<item name="order" type="462c0819:PsiDirectoryNode" />
|
||||||
|
<item name="common" type="462c0819:PsiDirectoryNode" />
|
||||||
|
<item name="models" 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" />
|
||||||
|
<item name="log" type="462c0819:PsiDirectoryNode" />
|
||||||
|
</path>
|
||||||
<path>
|
<path>
|
||||||
<item name="order" type="b2602c69:ProjectViewProjectNode" />
|
<item name="order" type="b2602c69:ProjectViewProjectNode" />
|
||||||
<item name="order" type="462c0819:PsiDirectoryNode" />
|
<item name="order" type="462c0819:PsiDirectoryNode" />
|
||||||
@@ -217,6 +255,13 @@
|
|||||||
<item name="templates" type="462c0819:PsiDirectoryNode" />
|
<item name="templates" type="462c0819:PsiDirectoryNode" />
|
||||||
<item name="account" type="462c0819:PsiDirectoryNode" />
|
<item name="account" type="462c0819:PsiDirectoryNode" />
|
||||||
</path>
|
</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>
|
<path>
|
||||||
<item name="order" type="b2602c69:ProjectViewProjectNode" />
|
<item name="order" type="b2602c69:ProjectViewProjectNode" />
|
||||||
<item name="External Libraries" type="cb654da1:ExternalLibrariesNode" />
|
<item name="External Libraries" type="cb654da1:ExternalLibrariesNode" />
|
||||||
@@ -243,10 +288,10 @@
|
|||||||
<component name="RecentsManager">
|
<component name="RecentsManager">
|
||||||
<key name="CopyFile.RECENT_KEYS">
|
<key name="CopyFile.RECENT_KEYS">
|
||||||
<recent name="D:\order\web\templates\common" />
|
<recent name="D:\order\web\templates\common" />
|
||||||
|
<recent name="D:\order\common\models" />
|
||||||
<recent name="D:\order\web\static\js\user" />
|
<recent name="D:\order\web\static\js\user" />
|
||||||
<recent name="D:\order\web\templates\user" />
|
<recent name="D:\order\web\templates\user" />
|
||||||
<recent name="D:\order" />
|
<recent name="D:\order" />
|
||||||
<recent name="D:\order\web" />
|
|
||||||
</key>
|
</key>
|
||||||
<key name="MoveFile.RECENT_KEYS">
|
<key name="MoveFile.RECENT_KEYS">
|
||||||
<recent name="D:\order\common\libs" />
|
<recent name="D:\order\common\libs" />
|
||||||
@@ -327,7 +372,14 @@
|
|||||||
<option name="project" value="LOCAL" />
|
<option name="project" value="LOCAL" />
|
||||||
<updated>1563788503014</updated>
|
<updated>1563788503014</updated>
|
||||||
</task>
|
</task>
|
||||||
<option name="localTasksCounter" value="8" />
|
<task id="LOCAL-00008" summary="python学习">
|
||||||
|
<created>1563789519074</created>
|
||||||
|
<option name="number" value="00008" />
|
||||||
|
<option name="presentableId" value="LOCAL-00008" />
|
||||||
|
<option name="project" value="LOCAL" />
|
||||||
|
<updated>1563789519074</updated>
|
||||||
|
</task>
|
||||||
|
<option name="localTasksCounter" value="9" />
|
||||||
<servers />
|
<servers />
|
||||||
</component>
|
</component>
|
||||||
<component name="TodoView">
|
<component name="TodoView">
|
||||||
@@ -343,7 +395,7 @@
|
|||||||
<frame x="963" y="22" width="938" height="1028" extended-state="0" />
|
<frame x="963" y="22" width="938" height="1028" extended-state="0" />
|
||||||
<editor active="true" />
|
<editor active="true" />
|
||||||
<layout>
|
<layout>
|
||||||
<window_info content_ui="combo" id="Project" order="0" visible="true" weight="0.2777778" />
|
<window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.2777778" />
|
||||||
<window_info id="Structure" order="1" side_tool="true" weight="0.25" />
|
<window_info id="Structure" order="1" side_tool="true" weight="0.25" />
|
||||||
<window_info id="Favorites" order="2" side_tool="true" />
|
<window_info id="Favorites" order="2" side_tool="true" />
|
||||||
<window_info id="Project Explorer" order="3" />
|
<window_info id="Project Explorer" order="3" />
|
||||||
@@ -358,7 +410,7 @@
|
|||||||
<window_info anchor="bottom" id="TODO" order="6" weight="0.32960895" />
|
<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="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="Database Changes" order="8" show_stripe_button="false" />
|
||||||
<window_info active="true" anchor="bottom" id="Terminal" order="9" visible="true" weight="0.3642458" />
|
<window_info anchor="bottom" id="Terminal" order="9" visible="true" weight="0.3642458" />
|
||||||
<window_info anchor="bottom" id="Event Log" order="10" side_tool="true" />
|
<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="Version Control" order="11" />
|
||||||
<window_info anchor="bottom" id="Python Console" order="12" />
|
<window_info anchor="bottom" id="Python Console" order="12" />
|
||||||
@@ -382,37 +434,6 @@
|
|||||||
<option name="LAST_COMMIT_MESSAGE" value="python学习" />
|
<option name="LAST_COMMIT_MESSAGE" value="python学习" />
|
||||||
</component>
|
</component>
|
||||||
<component name="editorHistoryManager">
|
<component name="editorHistoryManager">
|
||||||
<entry file="file://$PROJECT_DIR$/venv/Lib/site-packages/flask/templating.py">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="150">
|
|
||||||
<caret line="124" column="4" selection-start-line="124" selection-start-column="4" selection-end-line="124" selection-end-column="4" />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/common/libs/UrlManager.py">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="62">
|
|
||||||
<caret line="2" column="6" selection-start-line="2" selection-start-column="6" selection-end-line="2" selection-end-column="6" />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/manager.py">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="165">
|
|
||||||
<caret line="9" column="18" selection-start-line="9" selection-start-column="18" selection-end-line="9" selection-end-column="18" />
|
|
||||||
<folding>
|
|
||||||
<element signature="e#24#59#0" expanded="true" />
|
|
||||||
</folding>
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/web/controllers/static.py">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="186">
|
|
||||||
<caret line="7" column="47" selection-start-line="7" selection-start-column="47" selection-end-line="7" selection-end-column="47" />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/mina/app.json">
|
<entry file="file://$PROJECT_DIR$/mina/app.json">
|
||||||
<provider selected="true" editor-type-id="text-editor" />
|
<provider selected="true" editor-type-id="text-editor" />
|
||||||
</entry>
|
</entry>
|
||||||
@@ -721,20 +742,52 @@
|
|||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/web/controllers/account/Account.py">
|
<entry file="file://$PROJECT_DIR$/web/templates/account/index.html">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="434">
|
<state relative-caret-position="288">
|
||||||
<caret line="20" lean-forward="true" selection-start-line="20" selection-end-line="20" />
|
<caret line="97" column="14" lean-forward="true" selection-start-line="97" selection-start-column="14" selection-end-line="97" selection-end-column="14" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/common/models/log/AppAccessLog.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state>
|
||||||
<folding>
|
<folding>
|
||||||
<element signature="e#24#51#0" expanded="true" />
|
<element signature="e#16#90#0" expanded="true" />
|
||||||
</folding>
|
</folding>
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/web/templates/account/index.html">
|
<entry file="file://$PROJECT_DIR$/common/models/log/AppErrorLog.py">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="257">
|
<state>
|
||||||
<caret line="96" column="6" lean-forward="true" selection-start-line="96" selection-start-column="6" selection-end-line="96" selection-end-column="6" />
|
<folding>
|
||||||
|
<element signature="e#16#78#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" lean-forward="true" 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/controllers/account/Account.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="226">
|
||||||
|
<caret line="45" selection-start-line="45" selection-end-line="45" />
|
||||||
|
<folding>
|
||||||
|
<element signature="e#24#68#0" expanded="true" />
|
||||||
|
</folding>
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/web/templates/common/tab_account.html">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="310">
|
||||||
|
<caret line="10" column="6" lean-forward="true" selection-start-line="10" selection-start-column="6" selection-end-line="10" selection-end-column="6" />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
|
|||||||
19
common/models/log/AppAccessLog.py
Normal file
19
common/models/log/AppAccessLog.py
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
# coding: utf-8
|
||||||
|
from sqlalchemy import BigInteger, Column, DateTime, Integer, String, Text
|
||||||
|
from sqlalchemy.schema import FetchedValue
|
||||||
|
from application import db
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
class AppAccessLog(db.Model):
|
||||||
|
__tablename__ = 'app_access_log'
|
||||||
|
|
||||||
|
id = db.Column(db.Integer, primary_key=True)
|
||||||
|
uid = db.Column(db.BigInteger, nullable=False, index=True, server_default=db.FetchedValue())
|
||||||
|
referer_url = db.Column(db.String(255), nullable=False, server_default=db.FetchedValue())
|
||||||
|
target_url = db.Column(db.String(255), nullable=False, server_default=db.FetchedValue())
|
||||||
|
query_params = db.Column(db.Text, nullable=False)
|
||||||
|
ua = db.Column(db.String(255), nullable=False, server_default=db.FetchedValue())
|
||||||
|
ip = db.Column(db.String(32), nullable=False, server_default=db.FetchedValue())
|
||||||
|
note = db.Column(db.String(1000), nullable=False, server_default=db.FetchedValue())
|
||||||
|
created_time = db.Column(db.DateTime, nullable=False, server_default=db.FetchedValue())
|
||||||
15
common/models/log/AppErrorLog.py
Normal file
15
common/models/log/AppErrorLog.py
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
# coding: utf-8
|
||||||
|
from sqlalchemy import Column, DateTime, Integer, String, Text
|
||||||
|
from sqlalchemy.schema import FetchedValue
|
||||||
|
from application import db
|
||||||
|
|
||||||
|
|
||||||
|
class AppErrorLog(db.Model):
|
||||||
|
__tablename__ = 'app_error_log'
|
||||||
|
|
||||||
|
id = db.Column(db.Integer, primary_key=True)
|
||||||
|
referer_url = db.Column(db.String(255), nullable=False, server_default=db.FetchedValue())
|
||||||
|
target_url = db.Column(db.String(255), nullable=False, server_default=db.FetchedValue())
|
||||||
|
query_params = db.Column(db.Text, nullable=False)
|
||||||
|
content = db.Column(db.String, nullable=False)
|
||||||
|
created_time = db.Column(db.DateTime, nullable=False, server_default=db.FetchedValue())
|
||||||
@@ -1,7 +1,9 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from flask import Blueprint,request,redirect
|
from flask import Blueprint,request,redirect
|
||||||
from common.libs.Helper import ops_render,iPagination
|
from common.libs.Helper import ops_render,iPagination
|
||||||
|
from common.libs.UrlManager import UrlManager
|
||||||
from common.models.User import User
|
from common.models.User import User
|
||||||
|
from common.models.log.AppAccessLog import AppAccessLog
|
||||||
route_account = Blueprint( 'account_page',__name__ )
|
route_account = Blueprint( 'account_page',__name__ )
|
||||||
from application import app,db
|
from application import app,db
|
||||||
@route_account.route( "/index" )
|
@route_account.route( "/index" )
|
||||||
@@ -31,7 +33,20 @@ def index():
|
|||||||
|
|
||||||
@route_account.route( "/info" )
|
@route_account.route( "/info" )
|
||||||
def info():
|
def info():
|
||||||
return ops_render( "account/info.html" )
|
resp_data = {}
|
||||||
|
req = request.args
|
||||||
|
uid = int(req.get('id', 0))
|
||||||
|
reback_url = UrlManager.buildUrl("/account/index")
|
||||||
|
if uid < 1:
|
||||||
|
return redirect(reback_url)
|
||||||
|
|
||||||
|
info = User.query.filter_by(uid=uid).first()
|
||||||
|
if not info:
|
||||||
|
return redirect(reback_url)
|
||||||
|
|
||||||
|
resp_data['info'] = info
|
||||||
|
|
||||||
|
return ops_render("account/info.html", resp_data)
|
||||||
|
|
||||||
@route_account.route( "/set" )
|
@route_account.route( "/set" )
|
||||||
def set():
|
def set():
|
||||||
|
|||||||
@@ -1,22 +1,12 @@
|
|||||||
{% extends "common/layout_main.html" %}
|
{% extends "common/layout_main.html" %}
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<div class="row border-bottom">
|
{% include "common/tab_account.html" %}
|
||||||
<div class="col-lg-12">
|
|
||||||
<div class="tab_title">
|
|
||||||
<ul class="nav nav-pills">
|
|
||||||
<li class="current">
|
|
||||||
<a href="{{ buildUrl('/account/index') }}">账户列表</a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="row m-t">
|
<div class="row m-t">
|
||||||
<div class="col-lg-12">
|
<div class="col-lg-12">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-lg-12">
|
<div class="col-lg-12">
|
||||||
<div class="m-b-md">
|
<div class="m-b-md">
|
||||||
<a class="btn btn-outline btn-primary pull-right" href="{{ buildUrl('/account/set') }}">
|
<a class="btn btn-outline btn-primary pull-right" href="{{ buildUrl('/account/set') }}?id={{ info.uid }}">
|
||||||
<i class="fa fa-pencil"></i>编辑
|
<i class="fa fa-pencil"></i>编辑
|
||||||
</a>
|
</a>
|
||||||
<h2>账户信息</h2>
|
<h2>账户信息</h2>
|
||||||
@@ -28,9 +18,9 @@
|
|||||||
<img class="img-circle circle-border" src="{{ buildStaticUrl('/images/common/avatar.png') }}" width="100px" height="100px">
|
<img class="img-circle circle-border" src="{{ buildStaticUrl('/images/common/avatar.png') }}" width="100px" height="100px">
|
||||||
</div>
|
</div>
|
||||||
<div class="col-lg-10">
|
<div class="col-lg-10">
|
||||||
<p class="m-t">姓名:gfddf</p>
|
<p class="m-t">姓名:{{ info.nickname }}</p>
|
||||||
<p>手机:dfgdd</p>
|
<p>手机:{{ info.mobile }}</p>
|
||||||
<p>邮箱:dfgdg</p>
|
<p>邮箱:{{ info.email }}</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="row m-t">
|
<div class="row m-t">
|
||||||
@@ -56,7 +46,17 @@
|
|||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr><td colspan="2">暂无数据</td></tr>
|
{% if access_list %}
|
||||||
|
{% for item in access_list %}
|
||||||
|
<tr>
|
||||||
|
<td>{{ item.created_time }}</td>
|
||||||
|
<td>{{ item.target_url }}</td>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
|
{% endfor %}
|
||||||
|
{% else %}
|
||||||
|
<tr><td colspan="2">暂无数据~~</td></tr>
|
||||||
|
{% endif %}
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
11
web/templates/common/tab_account.html
Normal file
11
web/templates/common/tab_account.html
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
<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('/account/index') }}">账户列表</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
Reference in New Issue
Block a user