對於flask尾部的理解:
if __name__ == "__main__":
app.run(host="127.0.0.2", port=8989, debug=True)
# 相當於python的模擬程序入口,如果運行當前文件,則該文件內容會被執行,若該文件內容被其他文件引用,則不會執行文件的內容
# 相當於Python模擬的程序入口,Python本身並沒有這麼規定,這只是一種編碼習慣。由於模塊之間相互引用,不同模塊可能有這樣的定義,而程序入口只有一個。到底哪個程序入口被選中,這取決於__name__的值。
# 如果一個.py文件(模塊)被直接運行時,則其沒有包結構,其__name__值爲__main__,即模塊名爲__main__。
# 所以,if __name__ == '__main__'的意思是:當.py文件被直接運行時,if __name__ == '__main__'之下的代碼塊將被運行;當.py文件以模塊形式被導入時,if __name__ == '__main__'之下的代碼塊不被運行。
# -*- coding: utf-8 -*-
import json
import psycopg2
from flask import request
from flask import Flask
from flask import make_response
from flask import jsonify
from validform import V, ValidateForm
from flask import Blueprint, g
from psycopg2 import connect,extras
import sys
import sqlite3
reload(sys)
sys.setdefaultencoding('utf8')
app = Flask(__name__)
headers = {'content-type': 'text/html; charset=utf-8'}
# conn = psycopg2.connect(database="zxy_student", user="postgres", password="****", host="0.0.0.0", port='5432')
# cursor = conn.cursor(cursor_factory=psycopg2.extras.RealDictCursor)
# cursor.execute("""select * from std_info""")
#sqlite返回字典型數據的工廠函數
def dict_factory(cursor, row):
d = {}
for idx, col in enumerate(cursor.description):
d[col[0]] = row[idx]
return d
conn = sqlite3.connect('filltable.db')
conn.row_factory = dict_factory
cursor = conn.cursor()
cursor.execute("""select a.node_id as anode_id,a.node_name as anode_name from nodeInfo a""")
value = cursor.fetchall()
cursor.close()
conn.close()
@app.route('/api/batch', methods=["POST"])
def testport():
try:
# form = ValidateForm(
# user=['用戶', V.required()],
# password=['密碼', V.optional()],
# )
# (flag, data) = form.validate()
# if not flag:
# data['status'] = 'fail'
# return json.dumps(data)
# print json.dumps(data['password'])
# msg={'name':'xiaoming','age':'30','passdata':data['password']}
# msg={'name':'xiaoming','age':'30'}
# num=123
# text='haha'
# response = make_response(json.dumps({
# "data":{
# "msg":msg,
# "num":num,
# "text":text
# }
# }))
#在使用ajax時,後端處理跨域的方法
# response.headers['Access-Control-Allow-Origin'] = '*'
# return response
# print '哈哈'
return json.dumps({
"status":"success",
"data":value,
})
except Exception,e:
return json.dumps({
"status":"fail",
# "data":msg,
"msg":e
})
# 相當於python的模擬程序入口,如果運行當前文件,則該文件內容會被執行,若該文件內容被其他文件引用,則不會執行文件的內容
# 相當於Python模擬的程序入口,Python本身並沒有這麼規定,這只是一種編碼習慣。由於模塊之間相互引用,不同模塊可能有這樣的定義,而程序入口只有一個。到底哪個程序入口被選中,這取決於__name__的值。
# 如果一個.py文件(模塊)被直接運行時,則其沒有包結構,其__name__值爲__main__,即模塊名爲__main__。
# 所以,if __name__ == '__main__'的意思是:當.py文件被直接運行時,if __name__ == '__main__'之下的代碼塊將被運行;當.py文件以模塊形式被導入時,if __name__ == '__main__'之下的代碼塊不被運行。
if __name__ == "__main__":
app.run(host="127.0.0.2", port=8989, debug=True)