首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >金字塔模板在刷新时总是在Openshift服务器上重新加载(厨师)

金字塔模板在刷新时总是在Openshift服务器上重新加载(厨师)
EN

Stack Overflow用户
提问于 2014-01-15 16:43:04
回答 2查看 205关注 0票数 0

我已经在Openshift上构建了Python3.3金字塔1.5应用程序。

在我的本地开发系统上,当我刷新页面时,模板只能在启动服务器后重新加载一次。在生产服务器(Openshift)上,每次刷新页面时,模板总是重新加载(厨师)。模板没有更改,因此不应该重新加载。

在开发和生产ini文件中,“reload_templates”配置变量都被设置为“false”。请参见下面的配置。

知道为什么模板总是在我的Openshift应用程序的页面刷新中重新加载(厨师)吗?

我的development.ini和production.ini都设置为以下设置。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pyramid.reload_templates = false
pyramid.debug_authorization = false
pyramid.debug_notfound = false
pyramid.debug_routematch = false
pyramid.default_locale_name = en

编辑:这里是我如何启动我的金字塔应用程序的Openshift (跟随他们的基本启动)

app.py在OPENSHIFT服务器启动时启动

app.py

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
if __name__ == '__main__':
    import imp
    ip   = os.environ['OPENSHIFT_PYTHON_IP']
    port = int(os.environ['OPENSHIFT_PYTHON_PORT'])
    zapp = imp.load_source('main_production_no_pserve', 'myapp/__init__.py')

    print('Starting Waitress Server on %s:%d ... ' % (ip, port))
    run_waitress(zapp.main_production_no_pserve, ip, port)

init.py

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def main_production_no_pserve(environ, start_response):
    settings = {
            'pyramid.reload_templates': 'false',
            'pyramid.debug_authorization': 'false',
            'pyramid.debug_notfound':  'false',
            'pyramid.debug_routematch': 'false',
            'pyramid.default_locale_name':  'en'
    }
    config = app_configuration(settings)
    app = config.make_wsgi_app()(environ, start_response)
    return app


def app_configuration(settings):

    config = Configurator(authentication_policy=authentication_policy,
                          authorization_policy=authorization_policy,
                          settings=settings)

    config.include('pyramid_chameleon')                      
    config.add_static_view('static', 'static', cache_max_age=3600)
    config.add_route('Home_View', '/')

   config.add_subscriber('subscribers.handle_my_response','pyramid.events.NewResponse')
    config.set_request_factory(myrequest)                        
    config.scan('myapp.views')                        
    return config
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-01-22 10:48:07

问题是我是如何在Openshift上启动服务器的。旧的方法给人一种工作的错觉,但从长远来看确实没有。新代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def main_production_no_pserve (global_config, **settings):
    settings = {
            'pyramid.reload_templates': 'true',
            'pyramid.debug_authorization': 'false',
            'pyramid.debug_notfound':  'false',
            'pyramid.debug_routematch': 'false',
            'pyramid.default_locale_name':  'en'
    }
    config = app_configuration(settings)
    app = config.make_wsgi_app()
   return app



if __name__ == '__main__':

    ip   = os.environ['OPENSHIFT_PYTHON_IP']
    port = int(os.environ['OPENSHIFT_PYTHON_PORT'])
    app = main_production_no_pserve(global_config=None)
    from waitress import serve
    serve(app, host=ip, port=port, threads=50)
票数 0
EN

Stack Overflow用户

发布于 2014-01-15 17:54:09

一种可能性是:

环境变量和.ini文件设置

如果配置文件设置与环境变量的含义相同,并且在应用程序启动时都存在,则环境变量设置优先。

此外,我也不确定对--reload设置使用.ini设置的优先级。您使用什么命令来启动服务器?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21151332

复制
相关文章
Java8 - Streams flatMap()
在 Java 8 中,我们可以使用 flatMap 将上述 2 级 Stream 转换为一级 Stream 或将 二维数组转换为 一维数组。
小小工匠
2023/01/03
1.6K0
Java8 - Streams flatMap()
Java8——行为参数化传递代码
1、初试牛刀:筛选绿苹果 第一个解决方案可能是下面这样的: public static List<Apple> filterGreenApples(List<Apple> inventory){ List<Apple> result=new ArrayList<>(); //仅仅筛选出绿苹果 for (Apple apple : inventory) { if ("green".equals(apple.getColor())){
AlbertZhang
2020/09/02
5090
Java 8 Streams map() 示例
在Java 8中stream().map(),您可以将对象转换为其他对象。查看以下示例:
三产
2021/01/12
6880
Java8 - Streams map()
Stream.map()是Stream最常用的一个转换方法,它把一个Stream转换为另一个Stream
小小工匠
2023/01/01
4540
Java8 - Streams map()
向Bash函数传递参数
除非发生语法错误或已存在同名的只读函数,否则函数定义的退出状态为零。执行时,函数的退出状态码是在主体中执行的最后一个命令的退出状态码。
程序熵
2023/09/25
1940
向Bash函数传递参数
C++函数参数传递
当形参是非引用类型时,实参的值会被拷贝给形参,实参和形参是两个完全不同的对象,函数对形参做的所有操作都不会影响实参。
TOMOCAT
2021/05/11
1.7K0
Python函数参数传递机制
其中Number、String、Tuple和Sets是不可变类型,List和Dictionary是可变类型。
猫叔Rex
2022/01/24
8040
Python 函数作为参数传递
#map()的功能是将函数对象依次作用于表的每一个元素,每次作用的结果储存于返回的表re中。 #map通过读入的函数(这里是lambda函数)来操作数据 def test_func_map():     re = map((lambda x: x+3), [1, 2, 3, 4])     print re def testA(a, b, **kargs):     print a+b     print "testA: %s" % kargs #函数作为参数传递 def test_func(func, a, b, **kargs):     func(a, b)     print "test_func: %s" % kargs #函数作为参数传递 def test_func_lambda(func, **kargs):     func()     print "test_func_lambda: %s" % kargs def test_func_getattr():     func = getattr(obj, "testA")     func(1, 2) class TestGetattr():     aa = "2a"     def get_attr(self):         print "test getattr()"     def print_text(self):         print "print text"     def print_string(self):         print "print string" #getattr(obj, "a")的作用和obj.a是一致的,但该方法还有其他的用处,最方便的就是用来实现工厂方法 #根据传入参数不同,调用不同的函数实现几种格式的输出 def output(print_type="text"):     tg = TestGetattr()     output_func = getattr(tg, "print_%s" % print_type)     output_func() if __name__ == "__main__":     #test_func(testA, 1, 2, aa="aa")     #test_func_lambda((lambda: testA(1, 2, bb="bb")), cc="cc")     #test_func_map()     #test_func_getattr()     #getattr方法,传入参数是对象和该对象的函数或者属性的名字,返回对象的函数或者属性实例     obj = TestGetattr()     func = getattr(obj, "get_attr") #getattr()获得对象的属性和方法     func()     print getattr(obj, "aa") #完成对象的反射     print obj.aa     #callable方法,如果传入的参数是可以调用的函数,则返回true,否则返回false。     print callable(getattr(obj, "aa"))     output("string")
py3study
2020/01/09
3K0
Python函数参数传递机制
        最近在写代码的过程中,发现Python参数传递不是很明白。Python确实很灵活,但是灵活的后果就是要花更多的时间去研究。废话不多说,始めましょう!!!
py3study
2020/01/09
1K0
【Python】函数进阶 ③ ( 函数作为参数传递 )
之前介绍的函数 , 都是 接收具体的 变量 或 字面量 数据 作为参数 , 如 : 数字 / 布尔值 / 字典 / 列表 / 元组 等 ;
韩曙亮
2023/10/11
4560
【Python】函数进阶 ③ ( 函数作为参数传递 )
Java 8 中的 Streams API 详解
Stream 作为 Java 8 的一大亮点,它与 java.io 包里的 InputStream 和 OutputStream 是完全不同的概念。它也不同于 StAX 对 XML 解析的 Stream,也不是 Amazon Kinesis 对大数据实时处理的 Stream。Java 8 中的 Stream 是对集合(Collection)对象功能的增强,它专注于对集合对象进行各种非常便利、高效的聚合操作(aggregate operation),或者大批量数据操作 (bulk data operation)。Stream API 借助于同样新出现的 Lambda 表达式,极大的提高编程效率和程序可读性。同时它提供串行和并行两种模式进行汇聚操作,并发模式能够充分利用多核处理器的优势,使用 fork/join 并行方式来拆分任务和加速处理过程。通常编写并行代码很难而且容易出错, 但使用 Stream API 无需编写一行多线程的代码,就可以很方便地写出高性能的并发程序。所以说,Java 8 中首次出现的 java.util.stream 是一个函数式语言+多核时代综合影响的产物。
编程十年
2019/09/17
1.1K0
Golang函数参数的值传递和引用传递
值传递是指在调用函数时将实际参数复制一份传递到函数中,这样在函数中如果对参数进行修改,将不会影响到实际参数
仙人技术
2021/08/31
2.5K0
Golang函数参数的值传递和引用传递
Java 参数传递是值传递还是引用传递?
首先把结论表明,Java 的参数传递是值传递,因为有部分细节让人引起误解以为是引用传递,故我们写两个例子来举例探讨。
萬物並作吾以觀復
2019/05/10
2.8K0
java中的参数传递-值传递、引用传递
参数是按值而不是按引用传递的说明 Java 应用程序有且仅有的一种参数传递机制,即按值传递。
chenchenchen
2022/11/29
4.7K0
java中的参数传递-值传递、引用传递
go语言:函数参数传递详解
参数传递是指在程序的传递过程中,实际参数就会将参数值传递给相应的形式参数,然后在函数中实现对数据处理和返回的过程。比较常见的参数传递有:值传递,按地址传递参数或者按数组传递参数。
李海彬
2018/07/26
9050
go语言:函数参数传递详解
python开发_函数的参数传递
在这个用例中,我们要讨论的是关于函数的传参问题 我所使用的python版本为3.3.2
Hongten
2018/09/13
1.1K0
Java的参数传递是值传递还是引用传递
当一个对象被当作参数传递到一个方法后,在此方法内可以改变这个对象的属性,那么这里到底是值传递还是引用传递?    答:是按值传递。Java 语言的参数传递只有按值传递。当一个实例对象作为参数被传递到方
nnngu
2018/03/15
3.3K0
Java的参数传递是值传递还是引用传递
Go-函数作为参数传递
编码过程中业务需要将一个函数,作为参数传递到函数内部。Go 语言的匿名函数是一个闭包(Closure)
王小明_HIT
2023/03/01
1.7K0
Go-函数作为参数传递
scrapy回调函数传递参数
scrapy.Request 的callback传参的两种方式 1.使用 lambda方式传递参数 def parse(self, response): for sel in response.xpath('//li[@class="clearfix"]/div[@class="list_con"]'): item=DmozItem() item['href']=sel.xpath('h2/a/@href').extract()[0] yield sc
用户1558882
2018/04/03
1.2K0
点击加载更多

相似问题

使用Java 8 Streams对集合进行分组和排序

11

带参数的Java 8 streams映射

31

Java Streams中的lambda函数集合

15

如何使用Java 8 streams流式传输带有集合的地图?

246

使用不同集合的Java8- Streams嵌套ForEach

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

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