https://www.cnblogs.com/DragonFire/tag/Flask%E5%AD%A6%E4%B9%A0/ 一:初识flask 安装:pip install Flask 1. Django Web框架 优点:大而全,Froms Admin model ...... 缺点:浪费资源 2. Flask Web框架 优点:短小精悍,session(存放在cookies),三方组件强大 缺点:运行稳定性较差,你还不会 三行代码: from flask import Flask app = Flask(__name__) app.run() 六行视图函数 @app.route("/index") # 路由 def index(): # 视图函数 return "Hello OldBoy EDU" # Django HttpResponse 二:response三剑客: httpresponse: return "hello" jsonify({k:v}) render_template : 先导入再 return templates 是模板的默认存放路径 redirect: 先导入再 return redirect("/login") send_file(): 先导入再 return send_file(打开文件并返回) 三:flask中的request request: args url地址当中的参数 form POST请求体中的FormData中的数据 values 获取所有参数(url,formdata) request.data content-type:jinwangbayinwangbabiwushangzanjiadelaowangba b"{username:jinwangba}" request.json content-type:application/json 将数据序列化字典中 request.files 获取Formdata中的文件 jwbdf = request.files["jinwangbadefile"] jwbdf.save(jwbdf.filename) 属性类的: method 请求方式 url 完整地址 host 前半段儿 http://111.111.111.111:5000/ path 后半段儿 /login 四:flask中的模板语言 jinjia2及render_template Jinja2 {{ }} 非逻辑代码 {% %} 逻辑代码 七:flask中的路由系统 路由: methods=["POST","GET"] endpoint="反向url地址" url_for("反向url地址") defaults={"nid":10} 动态路由参数/index/<int:arg> url_for("endpoint",arg=123) 八:对app的配置及实例化flask参数 Flask的配置 1.Flask实例化配置 app = Flask(__name__) static_folder = 'static', # 静态文件目录的路径 默认当前项目中的static目录 static_url_path = None, # 静态文件目录的url路径 默认不写是与static_folder同名,远程静态文件时复用 template_folder = 'templates' # template模板目录, 默认当前项目中的 templates 目录 1 app.config["DEBUG"] = True 2 配置文件:settings.py 启动文件:app.config.from_object("settings.FlaskSetting") 2.Flask对象配置 'SECRET_KEY': None, # 之前遇到过,在启用Session的时候,一定要有它 'SESSION_COOKIE_NAME': 'session', # 在cookies中存放session加密字符串的名字 'JSONIFY_MIMETYPE': 'application/json' class FlaskConfigDebug(object): DEBUG = True SECRET_KEY = "DragonFire" class FlaskConfigTesting(object): TESTING = True SECRET_KEY = "DragonFire" app.config.from_object(FlaskConfigDebug) 九:Flask蓝图(Blueprint) from flask import Blueprint #s_view.py app.register_blueprint(s_view.sv) #manager.py 蓝图就是另一种形式的Flask实例 detail_blueprint = Blueprint("serv",__name__, template_folder="serv_temp", static_folder="serv_static", static_url_path="/serv_static",url_prefix="/servs") 十:Flask特殊装饰 (组件) @app.template_folder() 类偏函数的方法 @app.template_global() 全局函数 @app.errorhandler(405) def my_405(args) @app.before_request def be1(): return None 是继续 return not None 是中断 @app.after_request def af1(res): return res # be1 - be2 - af2 - af1 # be1 - af2 - af1 Flask中的session app.config["SECRET_KEY"] = "asdfasdfasdf" Flask中的 CBV class Login(views.MethodView): def get(self): return render_template("template.html") def post(self): username = request.form.get("username") password = request.form.get("password") if username == "yinwangba" and password == "jinwangba": return "登录成功" return render_template("template.html",msg="登录失败滚吧") app.add_url_rule("/login",endpoint=None,view_func=Login.as_view(name="login"))