Flask框架
Posted mofujin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flask框架相关的知识,希望对你有一定的参考价值。
1.安装命令: pip install flask
2.使用
1.自己的app
from flask import Flask app = Flask(__name__) @app.route(‘/‘) def hello_world(): return ‘Hello World!‘ if __name__ == ‘__main__‘: app.run()
2.底层代码2(了解)
from wsgiref.simple_server import make_server def mya(environ, start_response): print(environ) start_response(‘200 OK‘, [(‘Content-Type‘, ‘text/html‘)]) if environ.get(‘PATH_INFO‘) == ‘/index‘: with open(‘index.html‘,‘rb‘) as f: data=f.read() elif environ.get(‘PATH_INFO‘) == ‘/login‘: with open(‘login.html‘, ‘rb‘) as f: data = f.read() else: data=b‘<h1>Hello, web!</h1>‘ return [data] if __name__ == ‘__main__‘: myserver = make_server(‘‘, 8011, mya) print(‘监听8011‘) myserver.serve_forever()
底层实现代码2
3. Flask的四大剑客(jdango 的三板斧)
from flask import Flask, render_template, redirect, jsonify # 四剑客 render_template, redirect, jsonify app = Flask(__name__) @app.route(‘/‘) def task1(): # 1.直接返回字符串 # return ‘字符串‘ # 2.html页面 my_dict = {"?name":"coco"} # return render_template(‘index.html‘,name=‘Tom‘,n_dict=my_dict) # 3/页面进行跳转 # return redirect(‘/login‘) # 4.返回json 格式的数据 name_dict = [{‘name‘:"coco_nb"},{‘name‘:"Sam"}] return jsonify(name_dict) # [{"name":"coco_nb"},{"name":"Sam"}] 标准的jsonify 格式字符串 @app.route(‘/login‘) def login(): # return ‘flask_login‘ # 直接天转我们的代码实现页面或功能体代码的执行 return render_template(‘login.html‘) #
from flask import Flask # 生成一个Flask 类的对象 >>> 封装成用一个类 app = Flask(__name__) # 当前文件 实列化 # 补充: 我们有Mvc>>> model view contral和Fvc @app.route(‘/‘) def work1(): return ‘OKle‘ # >>> 直接返回一个字符串 if __name__ == ‘__main__‘: app.run() # 本质是:run_simple(host,port,app,**optons >位置参数) # 对象点run()的方法 执行 # app() 对象 ,执行__call__
4.四种配制DEBUG 的时时更新的方法(刷新服务器的作用)
from flask import Flask,render_template,redirect, jsonify app = Flask(__name__) # 这是第一种配制debug # app.debug=True # app.secret_key = ‘12312312‘ # 这是第二种 # app.config[‘Debug‘] = True # 第三种 debug 时时刷新配置 以文件的形式 # app.config.from_pyfile(‘settings.py‘) # 第四种配置我们的DEBUG 时时更新 改配置代码就要记得时时刷新 IO 类CTR+S 保存就会时时刷新 # 第四种一类的形式是我们推荐的一种模式 app.config.from_object(‘settings.DevelopmentConfig‘) @app.route(‘/‘) def task1(): return redirect(‘/login‘) @app.route(‘/login‘) def login(): print(2) return render_template("login.html") @app.route(‘/register‘) def register(): return ‘register‘ if __name__ == ‘__main__‘: print(‘hahah‘) app.run()
4.起别名 (反向解析)
# 起别名 from flask import Flask, url_for,render_template,redirect app = Flask(__name__) app.debug=True # @app.route(‘/login‘,methods=[‘GET‘,‘POST‘], endpoint=‘dsb‘) # # rule >>> 路由 # endpoint >>> 起别名 # methods = [‘GET‘,POST] # view_fun=就是我们endpoint 我们的函数名 也就是请求改路由的的时候 要响应改函数 # 反向解析 def login(nid): print(type(nid),nid) return ‘obj_login‘ app.add_url_rule(‘/login/<string:nid>‘, view_func=login, endpoint=‘hhh‘, methods=[‘GET‘,‘POST‘]) """ 取别名 """ # 第一 起别名(反向解析) def register(): return ‘ko‘ app.add_url_rule(‘/register‘,view_func=register, endpoint=‘sbs‘) def index(): real_url = url_for(‘sbs‘) return redirect(real_url) app.add_url_rule(‘/index‘,view_func=index,methods=[‘GET‘,‘POST‘]) if __name__ == ‘__main__‘: app.run() #
5.cbv类Flask 的执行
# CBV与fbv
# CBV与fbv from flask import Flask,views app = Flask(__name__) app.debug = True class IndexView(views.View): methods = [‘GET‘,‘POST‘] def dispatch_request(self): print(‘123‘) return ‘不会走get post ‘ def get(self): print(‘111‘) return ‘1111‘ def post(self): print(222) return ‘2222‘ #IndexView.as_view(name=‘index‘)都views.View里面的as_view的view #为什么要as_view(name=‘index‘), #如果不指定,就都是view #所以必须指定 app.add_url_rule(‘/register‘, view_func=IndexView.as_view(name=‘register‘)) if __name__ == ‘__main__‘: app.run()
继承MethodView 实现get post 请求
# CBV与fbv from flask import Flask,views app = Flask(__name__) app.debug = True class IndexView(views.MethodView): methods = [‘GET‘,‘POST‘] # def dispatch_request(self): # print(‘123‘) # return ‘不会走get post ‘ def get(self): print(‘111‘) return ‘1111‘ def post(self): print(222) return ‘2222‘ #IndexView.as_view(name=‘index‘)都views.View里面的as_view的view #为什么要as_view(name=‘index‘), #如果不指定,就都是view #所以必须指定 app.add_url_rule(‘/register‘, view_func=IndexView.as_view(name=‘register‘)) if __name__ == ‘__main__‘: app.run()
6.实现登陆
以上是关于Flask框架的主要内容,如果未能解决你的问题,请参考以下文章