flask

一. 简单应用

1. 安装flask
sudo easy_install pip(如果没有pip先安装pip)
sudo pip install flask
2. 一个简单的应用
# coding=utf-8

from flask import Flask         # 导出Flask类
app = Flask(__name__)           # 生成一个web app对象

@app.route('/')                 # 注册一个url,表示当请求url + '/',这个网址时,执行hello_world这个函数
def hello_world():
    return 'hello, world'

if __name__ == '__main__':      # 启动这个app应用
    app.run()                   # 相关参数app.run(host=None, port=None, debug=None, **options)
                                # host默认是127.0.0.1
                                # port默认是5000

保存为hello.py(文件名不能是flask.py,会与Flask本身冲突)

$ python hello.py 
Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
将该网址粘贴到浏览器打开即可

Mac 下 遇到报错python socket.error: [Errno 48] Address already in use
打开终端,输入sudo lsof -i:XXXX
xxxx是你刚刚用来开启服务的端口号
然后执行kill -9 aaaa
aaaa是出现的那个PID
然后重新运行程序即可成功

3. 文件目录结构
4. flask深入学习资料

Flask官方网站:http://docs.jinkan.org/docs/flask/
Flask大型教程项目:http://www.pythondoc.com/flask-mega-tutorial/
stack overflow:http://stackoverflow.com/questions/tagged/flask


二. python web开发框架

1. flask

简单,轻量,灵活性大

2. django

简单,比flask重,灵活性没有flask好,出现时间长

3. web.py

简单,轻量,但不会再积极维护了


三.python flask框架使用


views.py:接口逻辑

# coding=utf-8
# views.py

from flask import Flask         # 导出Flask类
app = Flask(__name__)           # 生成一个web app对象

@app.route('/')                 # 注册一个url,表示当请求url + '/',这个网址时,执行home_page这个函数
def home_page():
    home_data = logic.get_home()
    return home_data

@app.route('/books')                    
def books():
    books_data = logic.get_books()
    return books_data

@app.route('/book/')                   
def book(book_id):
    book_data = logic.get_book(book_id)
    return book_data

@app.route('/students')                 
def students():
    students_data = logic.get_students()
    return students_data

@app.route('/student/')                 
def book(student_id):
    student_data = logic.get_student(student_id)
    return student_data

if __name__ == '__main__':      # 启动这个app应用
    app.run()                   # 相关参数app.run(host=None, port=None, debug=None, **options)
                                # host默认是127.0.0.1
                                # port默认是5000

logic.py:逻辑处理

# coding=utf-8
# logic.py

def get_home():
    #获取图书馆主页资料,一般是读取数据库或者缓存系统
    return 'data of home page'

def get_books():
    return 'list of books basic info'

def get_book(book_id):
    return 'detailed info of book : {}'.format(book_id)

def get_students():
    return 'list of students basic info'

def get_student(student_id):
    return 'detailed info of student : {}'.format(student_id)

run.py:应用发布

你可能感兴趣的:(flask)