ringech.chen@ogilvy.com 4 anos atrás
commit
5975a47bc7

+ 15
- 0
ganlinnya/.idea/deployment.xml Ver arquivo

@@ -0,0 +1,15 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<project version="4">
3
+  <component name="PublishConfigData" autoUpload="Always">
4
+    <serverData>
5
+      <paths name="10.10.10.10">
6
+        <serverdata>
7
+          <mappings>
8
+            <mapping local="$PROJECT_DIR$" web="/" />
9
+          </mappings>
10
+        </serverdata>
11
+      </paths>
12
+    </serverData>
13
+    <option name="myAutoUpload" value="ALWAYS" />
14
+  </component>
15
+</project>

+ 11
- 0
ganlinnya/.idea/ganlinnya.iml Ver arquivo

@@ -0,0 +1,11 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<module type="PYTHON_MODULE" version="4">
3
+  <component name="NewModuleRootManager">
4
+    <content url="file://$MODULE_DIR$" />
5
+    <orderEntry type="jdk" jdkName="Python 3.7 (1st-PyCrawlerMarathon)" jdkType="Python SDK" />
6
+    <orderEntry type="sourceFolder" forTests="false" />
7
+  </component>
8
+  <component name="TestRunnerService">
9
+    <option name="PROJECT_TEST_RUNNER" value="Unittests" />
10
+  </component>
11
+</module>

+ 6
- 0
ganlinnya/.idea/inspectionProfiles/profiles_settings.xml Ver arquivo

@@ -0,0 +1,6 @@
1
+<component name="InspectionProjectProfileManager">
2
+  <settings>
3
+    <option name="USE_PROJECT_PROFILE" value="false" />
4
+    <version value="1.0" />
5
+  </settings>
6
+</component>

+ 7
- 0
ganlinnya/.idea/misc.xml Ver arquivo

@@ -0,0 +1,7 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<project version="4">
3
+  <component name="JavaScriptSettings">
4
+    <option name="languageLevel" value="ES6" />
5
+  </component>
6
+  <component name="ProjectRootManager" version="2" project-jdk-name="Python 3.7 (1st-PyCrawlerMarathon)" project-jdk-type="Python SDK" />
7
+</project>

+ 8
- 0
ganlinnya/.idea/modules.xml Ver arquivo

@@ -0,0 +1,8 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<project version="4">
3
+  <component name="ProjectModuleManager">
4
+    <modules>
5
+      <module fileurl="file://$PROJECT_DIR$/.idea/ganlinnya.iml" filepath="$PROJECT_DIR$/.idea/ganlinnya.iml" />
6
+    </modules>
7
+  </component>
8
+</project>

+ 15
- 0
ganlinnya/.idea/webServers.xml Ver arquivo

@@ -0,0 +1,15 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<project version="4">
3
+  <component name="WebServers">
4
+    <option name="servers">
5
+      <webServer id="1a5fbcad-07c3-419b-b537-6d5da44fbbb2" name="10.10.10.10" url="http://127.0.0.1">
6
+        <fileTransfer host="127.0.0.1" port="22" accessType="SFTP">
7
+          <advancedOptions>
8
+            <advancedOptions dataProtectionLevel="Private" passiveMode="true" shareSSLContext="true" />
9
+          </advancedOptions>
10
+          <option name="port" value="22" />
11
+        </fileTransfer>
12
+      </webServer>
13
+    </option>
14
+  </component>
15
+</project>

+ 54
- 0
ganlinnya/.idea/workspace.xml Ver arquivo

@@ -0,0 +1,54 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<project version="4">
3
+  <component name="ChangeListManager">
4
+    <list default="true" id="16e57d64-0362-476e-ac05-6b708cf01867" name="Default Changelist" comment="" />
5
+    <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
6
+    <option name="SHOW_DIALOG" value="false" />
7
+    <option name="HIGHLIGHT_CONFLICTS" value="true" />
8
+    <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
9
+    <option name="LAST_RESOLUTION" value="IGNORE" />
10
+  </component>
11
+  <component name="FileTemplateManagerImpl">
12
+    <option name="RECENT_TEMPLATES">
13
+      <list>
14
+        <option value="Python Script" />
15
+      </list>
16
+    </option>
17
+  </component>
18
+  <component name="ProjectId" id="1n5ePnojHdt77reJ1vgBUN52KDc" />
19
+  <component name="PropertiesComponent">
20
+    <property name="WebServerToolWindowFactoryState" value="false" />
21
+    <property name="settings.editor.selected.configurable" value="web.server" />
22
+  </component>
23
+  <component name="RunDashboard">
24
+    <option name="ruleStates">
25
+      <list>
26
+        <RuleState>
27
+          <option name="name" value="ConfigurationTypeDashboardGroupingRule" />
28
+        </RuleState>
29
+        <RuleState>
30
+          <option name="name" value="StatusDashboardGroupingRule" />
31
+        </RuleState>
32
+      </list>
33
+    </option>
34
+  </component>
35
+  <component name="SvnConfiguration">
36
+    <configuration />
37
+  </component>
38
+  <component name="TaskManager">
39
+    <task active="true" id="Default" summary="Default task">
40
+      <changelist id="16e57d64-0362-476e-ac05-6b708cf01867" name="Default Changelist" comment="" />
41
+      <created>1610684358071</created>
42
+      <option name="number" value="Default" />
43
+      <option name="presentableId" value="Default" />
44
+      <updated>1610684358071</updated>
45
+      <workItem from="1610684360286" duration="5672000" />
46
+      <workItem from="1610690058489" duration="662000" />
47
+      <workItem from="1610690733442" duration="5562000" />
48
+    </task>
49
+    <servers />
50
+  </component>
51
+  <component name="TypeScriptGeneratedFilesManager">
52
+    <option name="version" value="1" />
53
+  </component>
54
+</project>

+ 44
- 0
ganlinnya/config.py Ver arquivo

@@ -0,0 +1,44 @@
1
+# -*- coding: UTF-8 -*-
2
+
3
+class Config(object):
4
+    pass
5
+
6
+
7
+# 懶得實現憑參數區分環境,自行將使用中的環境參數複製到這個區塊
8
+class SysConfig(Config):
9
+    DEBUG = True
10
+    DB_HOST = '127.0.0.1'
11
+    DB_PORT = 3306
12
+    DB_USER = 'root'
13
+    DB_PASS = 'XXX'
14
+    DB_NAME = 'XXX'
15
+
16
+
17
+# 佈署環境
18
+class ProConfig(Config):
19
+    DEBUG = False
20
+    DB_HOST = '127.0.0.1'
21
+    DB_PORT = 3306
22
+    DB_USER = 'root'
23
+    DB_PASS = 'XXX'
24
+    DB_NAME = 'XXX'
25
+
26
+
27
+# 測試環境
28
+class PreConfig(Config):
29
+    DEBUG = False
30
+    DB_HOST = '127.0.0.1'
31
+    DB_PORT = 3306
32
+    DB_USER = 'root'
33
+    DB_PASS = 'XXX'
34
+    DB_NAME = 'XXX'
35
+
36
+
37
+# 開發環境
38
+class DevConfig(Config):
39
+    DEBUG = True
40
+    DB_HOST = '127.0.0.1'
41
+    DB_PORT = 3307
42
+    DB_USER = 'root'
43
+    DB_PASS = 'XXX'
44
+    DB_NAME = 'XXX'

BIN
ganlinnya/config.pyc Ver arquivo


+ 40
- 0
ganlinnya/main.py Ver arquivo

@@ -0,0 +1,40 @@
1
+# -*- coding: UTF-8 -*-
2
+from flask import Flask
3
+from config import SysConfig
4
+from flask import request
5
+import pymysql
6
+import json
7
+
8
+# 物件初始化
9
+app = Flask(__name__)
10
+app.config.from_object(SysConfig)
11
+connection = pymysql.connect(
12
+    host=app.config['DB_HOST'],
13
+    port=app.config['DB_PORT'],
14
+    user=app.config['DB_USER'],
15
+    password=app.config['DB_PASS'],
16
+    database=app.config['DB_NAME'],
17
+    charset='utf8'
18
+)
19
+
20
+
21
+# 路由(API 實作)
22
+@app.route('/test', methods=['GET'])
23
+def test():
24
+    # 接收參數
25
+    request.args.get('user', 'admin')
26
+    # 參數驗證 (自己刻或者使用公版的 reqparse)
27
+    # 資料庫
28
+    cursor = connection.cursor()
29
+    sql = "SELECT mycase FROM post limit 2;"
30
+    cursor.execute(sql)
31
+    result_set = cursor.fetchall()
32
+    cursor.close()
33
+    # 數據處理
34
+    # 返回
35
+    return json.dumps(result_set, ensure_ascii=False)
36
+
37
+
38
+# 入口
39
+if __name__ == '__main__':
40
+    app.run()

+ 11
- 0
ganlinnya/uwsgi.ini Ver arquivo

@@ -0,0 +1,11 @@
1
+[uwsgi]
2
+http = :9090
3
+plugin = python
4
+wsgi-file = main.py
5
+single-interpreter = true
6
+enable-threads = true
7
+master = true
8
+process = 3
9
+callable = app
10
+socket = /tmp/flask.sock
11
+chmod-socket = 666

BIN
開發佈署方式.docx Ver arquivo