flask的核心程序就两个:

  1. werkzegu(WSGI)库,封装了http、web通信等最关键的wsgi功能②Jinja2是Python下一个被广泛应用的模版引擎,方便了html模板的创建和使用
  2. 而继承自werkzegu库的flask,web应用最核心的就是Flask类,这个类创建一个实例,作为整个web的后台程序主体。

核心Flask实例的使用:

  1. 在app/__init__.py模块中,我们按照官网示例初始化一个实例

    from flask import Flask
    appweb = Flask(__name__)
  2. 实际使用中的探究:
    • 在实际使用中,发现,在web前端预览图片等操作,是直接在html或js中加入一个链接,就可以直接访问到图片等我们保存在后台中的资源,那么问题就出现了,这些没有任何逻辑和判断就可以畅通无阻地访问我们的静态资源文件,在不考虑nginx,uwsgi等服务器server程序的保护作用下,网站资源就像直接暴露在用户面前。那么安全性何言?
    • 通过更近一步的探究,我思考到,这些图片等静态资源,能够被用户通过图片url链接等方式直接访问,相当于是被允许暴露在用户面前,不处于web应用的保护下,但是整个后台的所有文件和代码文件,只有这个static中的前端文件被暴露出去(static中有css,image,js代码,这些都可以被直接写个链接在html中让用户使用),说明这个static是被暴露的文件夹
    • 那么,哪一个文件夹被暴露,一定是被web应用程序所决定,我们通过查询源码,就发现,Flask实例的创建的时候,是可以指定哪个文件夹是静态资源文件夹(一般是static文件夹,名字也可以任取),决定了暴露的文件夹。
    • 贴源码:
      def __init__(self,import_name,static_path=None,static_url_path=None,static_folder='static',
           template_folder='template',instance_path=None,instance_relative_config=False,
      root_path=None):
    • 通过Flask初始化方法可以看出,可以给static_folder参数赋值,赋值名称就是静态资源文件夹名称,再细看深究源码,文件夹名称通过werkzegu库处理,被指定成为静态资源文件夹,更进一步werkzegu是如何让某个文件夹可以被直接访问,静态资源文件夹是如何实现的,需再看werkzegu的源码,日后再写。

最新文章

  1. j2ee项目服务器怎样部署?
  2. C#对象先序列化然后反序列化时间丢失八小时的问题
  3. WPF入门教程系列十九——ListView示例(一)
  4. IOS数据存储之FMDB数据库
  5. Odoo中最小库存规则和按订单生成规则的区别
  6. ZeroMQ接口函数之 :zmq_msg_init_size - 使用一个指定的空间大小初始化ZMQ消息对象
  7. node.js中module.export与export的区别。
  8. css小知识之伪元素
  9. HNU 12845 Ballot Analyzing Device
  10. HDU3657 Game(最小割)
  11. ural 1242. Werewolf
  12. struts2校验の实现
  13. Python 基础【第十篇】内置类型
  14. iso和Android的验证码输入框
  15. Linux IPC实践(11) --System V信号量(1)
  16. Css3实现波浪效果2
  17. string和int的相互转换方法
  18. 将.ipynb文件导入到另外的文件中
  19. related work
  20. datatable插件使用小记

热门文章

  1. 安装Vmware Tools出现错误
  2. assert.notDeepStrictEqual()详解
  3. vue-router 根据路由动态添加目录 控制目录权限
  4. 集训第六周 M题
  5. DAG模型(矩形嵌套)
  6. 移动Web解决方案的链接收藏
  7. [luoguP2401] 不等数列
  8. CALayer之 customizing timing of an animation
  9. poj - 2195 Going Home (费用流 || 最佳匹配)
  10. POJ1328 Radar Installation 解题报告