首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >python flask before_request排除/static目录

python flask before_request排除/static目录
EN

Stack Overflow用户
提问于 2013-02-07 19:18:12
回答 3查看 6.2K关注 0票数 14

多亏了下面的答案,我有了一个before_request函数,如果用户还没有登录,它会将用户重定向到/login

flask before request - add exception for specific route

这是我的before_request的副本:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@app.before_request
def before_request():
    if 'logged_in' not in session and request.endpoint != 'login':
        return redirect(url_for('login'))

但是,除非用户登录,否则不会为静态目录中的文件提供服务。

在我的/login页面上,我从/static目录获取了一个css文件,但是由于这个before_request,它无法加载。

我已经使用apache mod_wsgi部署了这个应用程序,并且在我的apache配置文件中,我甚至包括了/static目录作为站点的DocumentRoot。

我如何才能在没有用户登录的情况下添加一个异常来为我的应用程序的/static文件提供服务,同时仍然将此before_request用于我的flask应用程序定义的路由?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-02-08 01:40:29

您需要将AliasAliasMatch指令添加到Apache配置文件(或.htaccess文件,如果您没有访问.conf文件的权限),以确保Apache服务于您的静态文件,而不是Flask。确保您提供了allow the Apache web server to access your static pathDirectory。(另外,如果您正在编辑.conf文件,请不要忘记重新启动Apache,这样您的更改就会生效)。

作为临时权宜之计(或者为了便于在开发中使用),您还可以检查以确保字符串/static/不在request.path

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
if 'logged_in' not in session \
    and request.endpoint != 'login' \
    and '/static/' not in request.path:
票数 11
EN

Stack Overflow用户

发布于 2015-02-10 09:33:18

我认为有一个比检查request.path更干净的解决方案。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
if 'logged_in' not in session and request.endpoint not in ('login', 'static'):
    return redirect(url_for('login'))
票数 9
EN

Stack Overflow用户

发布于 2014-07-25 16:39:04

我确实同意Apache方法,但为了快速修复,我在before_request()函数的开头使用了以下逻辑:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
if flask.request.script_root == "/static":
  return
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14759186

复制
相关文章
rsync 排除目录
假设最开始的命令是这样的 rsync -e 'ssh -p 30000' -avl --delete --stats --progress demo@123.45.67.890:/home/demo /backup/
用户5760343
2022/05/20
1.5K0
tar排除指定目录打包
假设 test目录下有 1 2 3 4 5 这5个目录 现在要将 3 4 5目录tar打包,1和2目录不要 命令如下: tar -zcvf test.tar.gz –exclude=1 –exclude=2 test 或 tar -zcvf test.tar.gz –exclude=test/1 –exclude=test/2 test 看man tar帮助,–exclude后面跟的好像是正则 注意: 要打包的test必须在命令最后,不然没有效果. 将 /etc/ 内的所有文件备份下来,并且保存其权限
用户1272546
2018/06/04
1.5K0
flask CMS目录结构(flask 40)
basedir = os.path.abspath(os.path.dirname(file))
用户5760343
2019/08/13
7080
flask 拦截器与session的使用(微信报修小程序源码讲解三)
上一讲,我们学会了 flask 路由的基本功能和用法 , 若你还是不理解怎么使用,可以联系我,我会为你解答。
热心的程序员
2020/03/24
3.2K0
flask 拦截器与session的使用(微信报修小程序源码讲解三)
Maven打包排除某个资源或者目录
最近在spark streaming本地调试的时候,引入了一些资源文件,打包的时候需要给排除掉。所以就考虑使用maven的方式 详细参考官方文档:https://maven.apache.org/plugins/maven-jar-plugin/examples/include-exclude.html 排除某个资源文件 <plugin> <groupId>org.apache.maven.plugins</groupId> <artif
用户1154259
2018/01/17
2.3K0
day115-Flask的session&路由参数&实例化配置&对象配置&蓝图&特殊装饰器(中间件)
1.基于Flask的session的认证校验简单实例 1.秘钥 2.登录写进session 3.装饰器&视图校验 4.路由中定义 endpoint 参数 from flask import Flask, render_template, redirect, request, session app = Flask(__name__) # step1:给一个秘钥 app.secret_key = 'Leon \' s secret_key' @app.route('/', methods=['GET'
少年包青菜
2020/04/20
6080
python flask web开发实战
路由: @app.route('/') def index(): return '<h1>hello</h1>'
用户5760343
2019/07/05
6200
Flask 学习-67.钩子函数before_request 和 before_first_request 的使用
前言 学过pytest框架的肯定知道什么叫钩子(hook)函数, 钩子函数的作用是在程序运行的过程中插入一段代码做一些事情。 四个钩子 请求钩子是通过装饰器的形式实现,Flask支持如下四种请求钩子: before_first_request      在对应用程序实例的第一个请求之前注册要运行的函数, 只会执行一次 before_request  在每次请求前执行,如果在某修饰的函数中返回了一个响应,视图函数将不再被调用 after_request  如果没有抛出错误,在每次请求后执行接受一个参数:视图函
上海-悠悠
2022/09/19
2.2K0
Flask 学习笔记
Flask 是一个Web应用框架,我也就是一边看书,一边写博文做记录 这本书: 首先安装Flask ,和配置环境,参考这边博客: 然后就开始学习Flask 了。 1.Application and R
ShenduCC
2018/04/27
6750
Flask 学习笔记
经验拾忆(纯手工)=> Flask框架
Sanic 和 Flask 简要概述 """ Flask常用 Sanic和Flask很像,于是按着Sanic官方文档学了一下,对比Flask学习并做下笔记,回顾一下 """ Flask:轻量级Web框架,三方组件齐全,用时安装,扩展灵活度高。 Sanic: 和Flask特别像,基础语法,基础命名特别相似(使用几乎差不多)。 Sanic是基于Uvloop(没用过,了解即可,windows不支持)实现, 具有 异步-非阻塞的特性 (网上也有说Sanic可以通
py3study
2020/01/03
1.1K0
Flask 学习篇二:学习Flask过程中的记录
Flask学习笔记: GitHub上面的Flask实践项目 https://github.com/SilentCC/FlaskWeb 1.Application and Request Context(上下文) 在Flask 中,一般一个view function(视图函数)会处理一个请求 Flask 中提供request context.保证全局只有一个线程的request,而不会同时出现两个request. Application and Request Context 一共有四种
ShenduCC
2018/04/27
1.7K0
Flask初版架构源码解读 | Python基础
WSGI即Web Server Gateway Interface是基于现存的CGI标准而设计的,是Python对CGI进行的一种包装 也是一个规范,定义了Web服务器如何与Python应用程序进行交互,使得使用Python写的Web应用程序可以和Web服务器对接起来 目前Django、Flask等主流Python Web框架都实现了WSGI
程序员荒生
2022/03/04
5210
Flask初版架构源码解读 | Python基础
linux怎么打包整个目录,tar打包整个目录(可排除子目录)几种方法[通俗易懂]
这篇文章小编给大家分享一下linux tar打包目录与有条件打包目录命令,想知道的小伙伴们赶快来看看吧!
全栈程序员站长
2022/08/26
9.5K0
Python + Flask 常用的钩子函数
钩子函数是指在执行函数和目标函数之间挂载的函数,框架开发者给调用方提供一个point-挂载点,至于挂载什么函数由调用方决定。
Wu_Candy
2022/07/04
8110
Python Web Flask源码解读(一)——启动流程
WebServerGatewayInterface 它由 Python标准定义的一套 WebServer与 WebApplication的接口交互规范。
阳仔
2019/07/30
9330
Python Web Flask源码解读(一)——启动流程
flask中请求勾子
在客户端和服务器交互的过程中,有些准备工作或扫尾工作需要处理,比如:     *在请求开始时,建立数据库连接;     *在请求开始时,根据需求进行权限校验;     *在请求结束时,指定数据的交互格式;
py3study
2020/01/19
3840
flask之请求钩子
from flask import Flask from flask import abort app = Flask(__name__) # 在第一次请求之前调用,可以在此方法内部做一些初始化操作 @app.before_first_request def before_first_request(): print("before_first_request") # 在每一次请求之前调用,这时候已经有请求了,可能在这个方法里面做请求的校验 # 如果请求的校验不成功,可以直接在此方法中进行
汪凡
2019/03/01
4400
Flask-RESTful的请求和响应处理(二)
除了使用 RequestParser 和 marshal_with() 装饰器来解析请求参数和序列化响应数据之外,Flask-RESTful 还提供了一些其他的请求和响应处理功能,例如请求钩子、异常处理和跨域资源共享(CORS)支持等。
堕落飞鸟
2023/05/06
6170
python3-开发进阶Flask的基础
最大的特点:短小精悍、可拓展强的一个Web框架。注意点:上下文管理机制,依赖wsgi:werkzurg 模块
py3study
2020/01/19
6720
python3-开发进阶Flask的基础
点击加载更多

相似问题

Flask的@before_request多次执行

10

在flask中使用before_request重定向

161

python排除目录

11

如何在python flask static中使用angular构建资源?

21

针对一组特定请求的Python Flask after_request和before_request

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文