flask04前端路由网络访问

前端路由网络访问:

Request对象:

直接导包,用点访问就有

  • 属性:
    在这里插入图片描述
    使用:
@blue.route('/requrest')
def get_request():
    return  request.host
  • args: 得到的请求参数字典;(元组形成的列表)

    • 所有请求都可以获得
    • 从请求的url里面获得
  • form:得到post,put,patch方法里面的参数:格式和上面差不多;

    • 从请求头里面去获得;
    • 类型是:不可改变的多的字典 对字典类型进行了封装。
  • files :文件上传:原生实现,插件实现

  • heads:请求头:

  • 获取immutableMultiDict中的值:

    • dict[key] or dict.get(‘key’) //推荐get方法获取。不会抛出异常
    • dict.getlist[‘key’]//获取key对应的所以值。
项目拆分,查看官方文档:

----前面知识总结---------

知识总结:

flask :

  • 基于python的Web的微框架:

    • 轻量级
    • 轻和微不是意味着不适用于大型项目,而是说为开发者做了很少的选择,做的事情不多
  • 内置两大核心模块:

    • jinja2:模版引擎
    • Werkzurg: WSGI工具集 web服务网关接口
  • 使用到的拓展包:

    • flask-script
    • flask-blueprint
    • flask-sqlalchemy
    • flask-migrate : 数据库迁移

App包里面 init.py 文件是模块里最先加载的,并且是单例的;

view: 路由器传参数

  • 参数如何传递,参数的限制,参数的种类。
  • 路由重定向
  • 反向解析路由
  • flask框架 :request 对象 属性
    • path
    • url

response 对象:

  • 指定返回状态码 :

return 'xxx',200

  • render_template(‘template.name’):将模版变成了字符串;
    #return 'sleeping ',400
    response = make_response('hhh')
    # 通过观看源码,自己造一个respose对象:
    response = Response('自己dit一个resposse')
  • abort(404)//不想处理的可以直接终止response
  • 捕获异常:
# @app下面是全局处理,blue下面就单个蓝图处理
@blue.errorhandler(404)
def hander404(e):
    return '404 找不到啦,傻子哦'

创建response三种方式:

  • 直接返回字符串
  • make_response
  • 直接构建response

参数设置:

  • 内容
  • 状态码

reder_template:

  • 作用,将模版变成字符串

HttpEXception:

  • 子类指定两个属性进行实现
  • 状态码 code
  • 描述 description

会话技术 cookie

  • 跨请求共享数据
  • 每次请求都是从 request开始到response结束
  • http请求是无状态到

几大实现技术

  • Cookie: 客户端会话技术,

    • 数据存在客户端。

    • key-value格式进行存储

      html文件form中使用进行反向路由:

    <form action= "{{ url_for('blue.login') }}" method="post"> </form>

过程就是 在post的时候 将值存在cookie里面,然后验证或者需要的时候取出来:

@blue.route('/login',methods=['POST','GET'])
def login():
    if request.method == 'GET':
        return render_template('login.html')
    if request.method == 'POST':
        username = request.form.get('username')
        response = make_response('登陆成功 %s' %username)
        # 添加cookie:
        response.set_cookie('username',username)
        return response

@blue.route('/mine')
def mine():
    username = request.cookies.get('username')
    return 'welcome %s ' %username
  • cookie默认支持中文

  • Session

    • 一般来说默认存储在服务器中
    • django可以序列化存储在数据库中
    • flask session存在内存中吗?不对
    • 记住,需要设置 secret_key, (那是什么呢?
    • 服务器重启后,session还是存在 why
    • session序列化之后进行了base64编码,zlib压缩,还传递了hash存在cookie里面。
    • 存储的时间是31天
      拓展: flask-session 拓展库:
  • 将session存到redis中去。

    • 使用flask-session将session通过键值对的形式存储在redis中
    • 只需要install
    • 然后初始化 Session(app),其他使用不变。
      redis存储实现原理:
  • 将数据进行了pickle序列化

  • Token :没说。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值