对于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)