pip install flask 安装flask运行环境

和Django类似,flask里面的模板也存放在templates文件夹下,用pycharm执行前,需要将其指定为模板文件并指定模板类型为jinja2

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

脚本代码为:

from flask import Flask,redirect,render_template,jsonify,send_file app=Flask(__name__) @app.route('/') def index(): return redirect('/register') @app.route('/register') def register(): return render_template('reg.html') @app.route('/js') def jso(): dic={"name":'kevin'} j=jsonify(dic) return j @app.route('/send') def send(): return send_file('yun.jpg') app.run(debug=True) #启用调试模式 会自动热加载

默认获取请求数据的方式分为get和post

flask中的request对象属于全局变量,是直接导入的

post请求的数据可以通过form.get()指定的键去取值         request.form.get('username')

get请求的数据可以通过args.get()指定的键去获取值  request.args.get('username')

request.method()  获取当前的请求方式

request.form()    获取post请求中存放FormData的数据

request.args()    获去get请求中url的数据

request.urls()     获取完整的URL地址

request.path()    获取当前路由地址

request.host()            当前主机地址

request.json()    如果前端返回的数据请求头中Content-Type :application/json 则是json格式数据能直接获取到json格式

request.data()    如果前端返回的数据请求头中Content-Type :application/data 则是无法识别的数据格式,全部数据将按byte存放

关于Jinja2
{{ }} 引用变量 执行函数
{% %} 逻辑代码
| safe Markup 安全标签字符串
@app.template_global()
@app.template_filter()
{% macro create_input(na,ty) %}
{{ na }} : <input type="{{ ty }}" name="{{ na }}">
{% endmacro %}
{{ create_input("username","text") }}

 flask装饰器实现简单的登陆认证(session):

from flask import Flask,render_template,request,session,redirect from functools import wraps #装饰器默认链式调用,同一装饰器作用不同视图会抛异常视图函数被覆盖 #用装饰器工具类的wraps来修正
 app=Flask(__name__) app.secret_key='luckily'    #一串用于加密的字符串序列化与反序列化session的值

#检查是否登录的装饰器
def wai(func): @wraps(func) def nei(*args,**kwargs): if session.get('user'): #session有值,则正常执行视图函数
            ret=func(*args,**kwargs) return ret else:                   #未登录则强制重定向
            return redirect('/login') return nei @app.route('/login',methods=['GET','POST'])     # methods 可以允许通过的请求 参数为列表或元组
def login(): if request.method=='GET': return render_template('login.html') # post方法执行相关操作
    user=request.form.get('username') pwd=request.form.get('password') if user=='lisa'and pwd=='12345':  session['user']=user return 'OK'
    else: return '用户名或者密码错误' @app.route('/index') @wai def index(): return render_template('index.html') @app.route('/about') @wai def about(): return render_template('about.html') app.run(debug=True) #开启调试模式 默认热加载编辑器

 flask这个奇葩居然把session放在了本地浏览器的cookie中。是认真的么???

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄