python 使用flask的理解

 

對於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)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章