flask是乙個基於python開發的微型web框架,其中werkzeug本質是socket服務端,其用於接收http請求並對請求進行預處理,然後觸發flask框架,開發人員基於flask框架提供的功能對請求進行相應的處理,並返回給使用者。
flask-sqlalchemy:運算元據庫;
flask-script:插入指令碼, 在終端中使用指令操作程式;
flask-migrate:管理遷移資料庫;
flask-session:session儲存方式指定;
flask-wtf:表單;
flask-mail:郵件;
flask-bable:提供國際化和本地化支援,翻譯;
flask-login:認證使用者狀態;
flask-openid:認證;
flask-restful:開發rest api的工具;
flask-bootstrap:整合前端twitter bootstrap框架;
flask-moment:本地化日期和時間;
flask-admin:簡單而可擴充套件的管理介面的框架
擴充套件列表:
flask官方文件
中文文件(
英文文件(
hello示例
from flask import flask
def hello_world():
return 'hello world!'
if __name__ == '__main__':
restful風格示例
# -*- coding: utf-8 -*-
# @time : 2020/9/17 11:46 下午
# @author : renwoxing
# @file : flask_restful_demo.py
# @software: pycharm
from flask import flask, jsonify, abort, request
books = [
,]def get_book(id):
for book in books:
if book['id'] == id:
return jsonify()
def get_books():
return jsonify()
def update_book(id):
for book in books:
if book['id'] == id:
book['name'] = request.form['name']
book['author'] = request.form['author']
book['price'] = request.form['price']
return jsonify()
abort(400)
def add_book():
if not request.form or not 'title' in request.form:
abort(400)
book =
return jsonify()
def delete_book(id):
for book in books:
if book['id'] == id:
books.remove(book)
return jsonify()
abort(404)
return jsonify()
if __name__ == '__main__':
使用flask擴充套件包示例
# -*- coding: utf-8 -*-
# @time : 2020/9/18 1:32 上午
# @author : renwoxing
# @file : flask_restful_ext_demo.py
# @software: pycharm
from flask import flask
from flask_restful import reqparse, abort, api, resource
parse = reqparse.requestparser
parse.add_argument('task')
todos = ,
'todo2': ,
'todo3':
}def abort_exception_if_todo_doesnt_exist(todo_id):
if todo_id not in todos:
abort(404, message="todo {} doesn't exist".format(todo_id))
class todo(esource):
def get(self, todo_id):
abort_exception_if_todo_doesnt_exist(todo_id)
return todos[todo_id]
def delete(self, todo_id):
abort_exception_if_todo_doesnt_exist(todo_id)
del todos[todo_id]
return 'todo is deleted', 204
def put(self, todo_id):
args = parse.parse_args()
task =
todos[todo_id] = task
return task, 201
class todolist(resource):
def get(self):
return todos
def post(self):
args = parse.parse_args()
todo_id = int(max(todos.keys()).lstrip('todo')) + 1
todo_id = 'todo' + str(todo_id)
todos[todo_id] =
return todos[todo_id], 201
# 設定路由
api.add_resource(todolist, '/todos')
api.add_resource(todo, '/todos/')
if __name__ == '__main__':
restful開發教程
restful架構,就是目前最流行的一種網際網路軟體架構。它結構清晰 符合標準 易於理解 擴充套件方便,所以正得到越來越多 的採用。restful 即representational state transfer的縮寫 其實是乙個開發理念,是對http的很好的詮釋。非rest的url http qu...
Restful風格開發
全稱 representational state transfer 強制翻譯 表述性狀態轉移 傳輸 1.restful 是一種風格 而非一種標準 2.根據此風格設計的軟體更簡潔且有層次 3.與rest 並列的方案 soap,rpc 4.以最適合使用者的任意形式將資源傳輸出去 1 使用者 可以是客戶...
Django開發部落格 RESTful
1.介紹 restful api是指符合rest風格的web介面 具體來說就是將所有被請求的實體當作資源,通過http自帶的方法 get,head,post,put,delete 來進行對應的增刪改查等操作。比如 獲取使用者列表 get user 獲取id為1的使用者資源 get user 1 建立...