精华内容
下载资源
问答
  • 百家授权客户付费使用VirtualApp商业版代码,集成VirtualApp代码的APP日启动次数超过2亿次,众多安卓工程师向我们提供不同场景下的用户反馈,通过我们技术团队不断优化迭代,VirtualApp商业版代码性能更好、兼容...
  • 我想使用Angular 2或其他框架开发的应用也有很多使用Webpack。 当我第一次看到Webpack的配置文件时,它看起来非常的陌生,我非常的疑惑。经过一段时间的尝试之后我认为这是因为Webpack只是使用了比较...
  • 英文原文地址:http://flask.pocoo.org/docs/1.0/appcontext/若有翻译错误或者不尽人意之处,请指出,谢谢~ 应用程序下文一个请求、CLI命令或者其他活动期间保持追踪应用程序级别数据。相较于为每个方法传递...

    英文原文地址:http://flask.pocoo.org/docs/1.0/appcontext/

    若有翻译错误或者不尽人意之处,请指出,谢谢~


            应用程序上下文在一个请求、CLI命令或者其他活动期间保持追踪应用程序级别数据。相较于为每个方法传递应用程序对象,我们可以直接访问current_appg两个代理。


    1. 上下文的目的

            Flask应用程序对象拥有很多属性,比如config,这些属性在视图和CLI 命令(CLI命令后面会讲解)中访问是非常有用的。然而,在项目的模块中导入app对象是非常容易引起循环导入的问题。当使用应用程序工厂模式(app factory pattern,后面会专门讲解)或者编写可重用的蓝图(后面会讲解)亦或是扩展(后面会讲解)时,根本不会导入一个app实例。

            Flask使用应用程序上下文(application context)来解决这些问题。相比于直接引用一个app实例,你应该使用current_app代理,这个代理指向了正在处理当前活动的应用程序。

            在处理一个请求时,Flask自动地推送(pushes)了一个应用程序上下文。视图方法,错误处理程序,以及其他运行在一个请求期间的方法,都可以访问current_app代理对象。

            在运行Flask.cli注册的(使用@app.cli.command()装饰器)CLI命令时,Flask也自动地推送了一个应用程序上下文。


    2. 上限文的生命周期

            应用程序上下文在必要时会被创建和被销毁。当一个Flask应用程序开始处理一个请求时,它推送了一个应用程序上下文和一个请求上下文(request context,下一章节的内容)。当这个请求结束时,它会取出这个请求上下文,然后取出这个应用程序上下文。一般而言,一个应用程序上下文与一个请求有着同样的生命周期。


    3. 手动推送一个上下文

            如果你在一个应用程序上下文之外,尝试访问current_app,或者其他方式使用它,你会得到这种错误消息:

    RuntimeError: Working outside of application context.
    
    This typically means that you attempted to use functionality that
    needed to interface with the current application object in some way.
    To solve this, set up an application context with app.app_context().

            如果你在配置你的应用程序时看到了这个错误,比如当初始化一个扩展时,你可以手动地推送一个上下文,因为你可以直接访问app对象。在一个with块中,使用app_context(),然后在这个块中运行的所有代码都可以访问current_app代理。

    def create_app():
        app = Flask(__name__)
    
        with app.app_context():
            init_db()
    
        return app

            如果你不是在配置应用程序期间看到这个错误,它更多的是在指示,你应该移动这个代码到一个视图方法或者CLI命令中。


    4. 存储数据

            在一个请求或者CLI命令期间,应用程序上下文是一个不错的存储常用数据的地方。Flask提供g对象来实现这个目标。这是一个简单的命令空间对象,它与一个应用程序上下文的生命周期一致。

            注意:

            g的名字表示“global”,但它引用的数据是全局的,前提必须是在一个上下文中。g携带的数据在对应的上下文结束后会丢失,并且在两个请求之间存储数据是不能使用g来实现的。在请求间存储数据应该使用会话(session)或者一个数据库。

            在一个请求期间,使用g来管理资源的常用方法:

            1. get_X() 如果不存在资源X的话,则创建,并将其存储到g.X中。

            2. teardown_X() 如果资源存在,则关闭或者回收资源。这个方法被注册成了一个叫做teardown_appcontext()的处理程序。

            举个栗子,你可以使用这个模式来管理一个数据库连接:

    from flask import g
    
    
    def get_db():
        if 'db' not in g:
            g.db = connect_to_database()
    
        return g.db
    
    
    @app.teardown_appcontext
    def teardown_db():
        db = g.pop('db', None)
    
        if db is not None:
            db.close()

            在一个请求期间,任何调用get_db()方法的地方都会返回同样的连接对象,并且它会在这个请求结束的时候自动地关闭。

            你可以使用LocalProxy来为get_db()中生成一个新的本地上下文:

    from werkzeug.local import LocalProxy
    
    
    db = LocalProxy(get_db)

            访问db时内部会调用get_db方法,这与current_app工作方式相同。

            如果你正在编写一个扩展,应该为用户代码保留g。你可能在上下文本身存储内部数据,但是确保要使用一个唯一的名字。使用_app_ctx_stack.top可以访问当前上下文。后续Flask扩展开发可以看到更多相关信息。


    5. 事件和信号

            当应用程序上下文被取出时,应用程序会所有调用被teardown_appcontext()注册过的方法。

            如果signals_available的值是true,那么下面的信号都会被发送:appcontext_pushedappcontext_tearing_downappcontext_popped

    展开全文
  • 直接翻译,将参数中的提示信息串用英文或者其他语言替换。这语义是改变了App的配置参数。 将这些提示信息串提取出来,放入资源文件,统一对资源文件进行国际化。 个人更倾向于第2个方案。一是因为语义比较...
    之前由于经验不足,将常用的App提示信息串(string)放置在了配置文件中(*.Settings)。目前需要将App国际化,对这些信息的翻译有两个途径:
    1. 直接翻译,将参数中的提示信息串用英文或者其他语言替换。这在语义上是改变了App的配置参数。
    2. 将这些提示信息串提取出来,放入资源文件,统一对资源文件进行国际化。
    个人更倾向于第2个方案。一是因为语义上比较一致;二是可以将资源统一处理。更可以建立新的DLL项目,将资源放置在DLL中。采用第2个方案需要两个
    步骤:1.将Settings中的名值对提取出来;2.将名值对生成为资源文件。如下Code,提取出名值对,以key=value的形式保存在中间文件(.txt)中。该中间文件
    能够被Resgen.exe进行识别,利用resgen.exe生成C#强类型的资源文件。
      
     *资源文件生成器 (Resgen.exe) 将文本(.txt 或 .restext)文件和基于 XML 的资源格式 (.resx) 文件转换为公共语言运行时二进制 (.resources) 文件,后者可嵌入到运行时二进制可执行文件或附属程序集中。

    示例Code如下:

    /// <summary> /// 将制定的参数集合以名值对的形式转储到制定的文本文件(utf-8)中。 /// </summary> /// <param name="stettings">参数集合</param> /// <param name="txtPath">输出路径</param> /// <exception cref="System.IO.IOException"></exception> public static void DumpSettingsToKvTxt(SettingsPropertyCollection stettings, string txtPath) { using (var fio = new StreamWriter(txtPath, true, Encoding.UTF8, 2048)) { foreach (var p in stettings) { var sp = p as SettingsProperty; fio.WriteLine($"{sp.Name}={sp.DefaultValue.ToString()}"); } fio.Flush(); } } /// <summary> /// resgen Hello.resource.txt /str:cs Hello.resource.resx /// </summary> /// <param name="txtPath">名值对的txt文本</param> /// <param name="resxName">目标强类型(C#/cs)*.resx资源文件</param> public static void ConvertKvTxtToResx(string txtPath, string resxName) { try { System.Diagnostics.Process.Start(@"resgen.exe", $"{txtPath} /str:cs {resxName}"); }catch(Exception ex) { System.Diagnostics.Debug.WriteLine(ex.Message); } }
    var txt = "Hello.resource.txt";
    var resx = "Hello.resx";
    
    DumpSettingsToKvTxt(Properties.Settings.Default.Properties, txt);
    DumpSettingsToKvTxt(Properties.Hints.Default.Properties, txt);
    ConvertKvTxtToResx(txt, resx);

    可以将多个*.settings全部统一存到最终的*.resx,但此代码没有考虑到名值对重复的问题。转换之后,直接添加.resx文件到工程即可。

    将名值对转换为C#强类型.Resx对象。
    resgen hints.txt Hints.resx /str:C#,Test.Properties /publicClass

     

    reference:

    [1] Resgen.exe, https://msdn.microsoft.com/zh-cn/library/ccec7sz1(v=vs.110).aspx

     

     

    转载于:https://www.cnblogs.com/jjseen/p/5315722.html

    展开全文
  • JAVA百实例源码以及开源项目

    千次下载 热门讨论 2016-01-03 17:37:40
    (1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户可以终端上直接地使用它,...
  • (1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户可以终端上直接地使用它,...
  • ios数据存储

    2012-06-29 10:40:48
    开启icloud备份后,程序内容可以备份到云端,这样用户数据可以在其他i设备使用。这样,开发人员在沙盒中存储数据就有讲究了。直接上Apple的文档。 下面简单翻译一下。 icloud和itunes对以下三个文件夹不会备份:...

    下面总结下之前遇到的ios数据存储中的经验总结.

    5.0以后,用户可以选择将程序备份到icloud,这对沙盒内的数据存储有了新的要求。

    开启icloud备份后,程序内容可以备份到云端,这样用户数据可以在其他i设备上使用。这样,开发人员在沙盒中存储数据就有讲究了。直接上Apple的文档

    下面简单翻译一下。

    icloud和itunes对以下三个文件夹不会备份:

    • <Application_Home>/AppName.app
    • <Application_Home>/Library/Caches
    • <Application_Home>/tmp

    以下是数据存储的几条规则

    1. 关键数据存储在<Application_Home>/Documents。所谓关键数据(critical data)是指不能有程序生成的如用户生成的文档或其他数据。
    2. 辅助文件(support files)指程序使用中通过下载获得或者用户可以重新创建的文件,他们的存放取决于ios版本:
    • ios5.1及以后,存储在<Application_Home>/Library/Application Support, 并设置NSURLIsExcludedFromBackupKey属性。
    • ios5以及之前的系统,存储在<Application_Home>/Library/Caches就可以避免被备份。对于5.0.1系统,也是存储在同样位置。但是通过以下方式设置不备份的属性。
    1. 缓存数据存储在<Application_Home>/Library/Caches。缓存数据指的是数据库文件和可以下载的文件,比如杂志/新闻/地图导航类应用需要用到的数据。缓存文件在存储空间不够的情况下会被系统删除。
    2. 临时数据<Application_Home>/tmp.临时数据指一段时间内不需要保存的数据,开发人员要注意随时情况此文件夹.

    下面再介绍下程序下载更新后,系统如何处理沙盒数据.

    下载更新并安装后,系统会新建一个文件夹安装程序,再把原有程序中的用户数据拷贝到新地址,再删除原有程序.用户数据指的就是以下两个文件夹的内容:

    • <Application_Home>/Documents
    • <Application_Home>/Library

    另外,对于备份还有个概念要提一下:

    1以上备份到远端指的是程序内的用户数据备份到icloud云服务器上,但是用户可以设置关闭对此应用的备份.

    2程序中使用icloud功能,将文件存储到icloud云服务器,这是由程序功能决定的,而不是可以由用户左右的

    展开全文
  • 这对每一位其他的行业的业务精英来说,简直就是“小菜一碟”,学会html、json和SQL语法远比进一步提高本行业的业务水平更容易,您的智慧很快被“翻译”成互联网应用系统软件。 降低开发成本:无需雇佣高水平高薪的...
  • 我的心可能比你们都痛,因为我网上收藏过10部《机器学习》相关视频,外加国内本土风格的教程: 7月+小象 等等,我都很难去听懂,直到有一天,被一个百度的高级算法分析师推荐说: 《机器学习实战》还不错,通俗...
  • 我目前macOS,用 Qt5.9.0 配合 Xcode8.3.2,还有Windows用 Qt5.9.0 MinGW 版本的成功编译本工程,其他环境不能保证编译的出来,不支持C++14的编译器(比如VS2013)肯定编译不出来。 方便的话,帮我点个星星...
  • 这对每一位其他的行业的业务精英来说,简直就是“小菜一碟”,学会html、json和SQL语法远比进一步提高本行业的业务水平更容易,您的智慧很快被“翻译”成互联网应用系统软件。 • 降低开发成本:无需雇佣高水平...
  • ✅ Markdown Image:VSCode 扩展,直接复制粘贴即可 Markdown 文件即可插入图片,支持上传到多种图床 - 更多介绍 ✅ 微信公众号代码高亮插件:Chrome扩展,可以公众号文章插入代码高亮,支持多个高亮主题自选...
  • 相册视图修正错误选择的相册的描述文本时- 用户配置文件中修正错误和未翻译的追随者标签- 图像列表修正了一张专辑分配多个图像时- 用户设置修复的臭虫取消链接社交帐户时- 图像查看器中修正了全景图像- ...
  • everything

    2010-04-25 17:05:20
    - 希望Everything只搜索某个目录,可以资源管理器或Total Commander中,右击该目录,弹出菜单选“Search Everything…”。这时你会看到Everything的搜索框中,出现了带引号的目录名。 - 与一方法相同,只是...
  • 目前,他管理着世界最大的Oracle数据库之一——美国童子军全国总部数据库。除本书外,他还是《Oracle 10g数据库管理艺术》(人民邮电出版社2007年出版)的作者,而且是Oracle公司OCP考试官方教材的作者。 目录 ...
  • 本地设备采集到的数据实时上传到云端,以便手机APP或者web等其他方式提取。 支持两种数据源,一种是串口和网络通过协议采集设备数据,一种是数据库采集。数据库采集模式可以作为通用的系统使用。 自带设备模拟工具,...
  • asp.net知识库

    2015-06-18 08:45:45
    .NET的反射软件设计的应用 关于跨程序集的反射 实现C#和VB.net之间的相互转换 深入剖析ASP.NET组件设计]一书第三章关于ASP.NET运行原理讲述的补白 asp.net 运行机制初探(httpModule加载) 利用反射来查看对象中的...
  • 可以使用 v-cloak 指令设置样式,这些样式会 Vue 实例编译结束时,从绑定的 HTML 元素被移除。 当网络较慢,网页还加载 Vue.js ,而导致 Vue 来不及渲染,这时页面就会显示出 Vue 源代码。我们可以使用 v-...
  • Egret 的 童话 与 现实

    2021-01-03 14:33:25
    更不是从JS代码翻译其他语言代码后再去执行。 好,把话题拉回来。虽然我不喜欢『模仿Flash的HTML5游戏框架』,但是我对『模仿FlashPunk和flixel这类Flash游戏框架』的做法是持肯定态度的。我的这两种...
  • iPhone开发秘籍(第2版)--源代码

    热门讨论 2012-12-11 13:51:22
    iPhone开发秘籍:第2版(iphone开发必备佳作,第一版的基础进行了全面修订和大量扩充) 基本信息 原书名: The iPhone Developer's Cookbook: Building Applications with the iPhone 3.0 SDK (2nd Edition) 原...
  • Android Training高级群:399096506,理论Android开发经验至少3年以上,部分能力突出的也可以申请,请申请入群的时候填写能力举证(例如,XXX公司Android高级开发/个人博客/Github账号等等),谢谢配合!...
  • RadASM 中文汉化版

    2013-08-06 12:48:15
    3、RadASM 中添加的插件 CodeTemplates.dll 是用于编辑代码时输入定义好的代码模板的,默认调出方式是Ctrl+J,可根据Addins\Help目录下的帮助文件CodeTemplates.Txt(我已翻译过)来自己配置需要的模板。...
  • Apache HBase: 是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可廉价PC Server搭建起大规模结构化存储集群 HBase入门————《HBase不睡觉》 《HBase实战》见下方ebook 一条数据...
  • 操作 Mac 窗口无需像使用 Windows 系统那样如同手术台给病人开刀一样地小心翼翼。 <ul><li>滚动窗口。只需把鼠标移到相应的应用程序窗口的任意位置(千万不要移到右侧滚动条的上方!这样很圡!...
  • java开源包1

    千次下载 热门讨论 2013-06-28 09:14:34
    DoppioVM 是一个可浏览器上直接运行 Java 项目的系统,无需任何插件支持。目前它包含一个完整的虚拟机以及一个 javap 字节码反汇编器。 brap(Java远程调用框架 BRAP) 一个Java远程调用框架,它将原生Java对象序列...
  • java开源包12

    热门讨论 2013-06-28 10:14:45
    DoppioVM 是一个可浏览器上直接运行 Java 项目的系统,无需任何插件支持。目前它包含一个完整的虚拟机以及一个 javap 字节码反汇编器。 brap(Java远程调用框架 BRAP) 一个Java远程调用框架,它将原生Java对象序列...
  • Java资源包01

    2016-08-31 09:16:25
    DoppioVM 是一个可浏览器上直接运行 Java 项目的系统,无需任何插件支持。目前它包含一个完整的虚拟机以及一个 javap 字节码反汇编器。 brap(Java远程调用框架 BRAP) 一个Java远程调用框架,它将原生Java对象序列...
  • java开源包101

    2016-07-13 10:11:08
    DoppioVM 是一个可浏览器上直接运行 Java 项目的系统,无需任何插件支持。目前它包含一个完整的虚拟机以及一个 javap 字节码反汇编器。 brap(Java远程调用框架 BRAP) 一个Java远程调用框架,它将原生Java对象序列...
  • java开源包11

    热门讨论 2013-06-28 10:10:38
    DoppioVM 是一个可浏览器上直接运行 Java 项目的系统,无需任何插件支持。目前它包含一个完整的虚拟机以及一个 javap 字节码反汇编器。 brap(Java远程调用框架 BRAP) 一个Java远程调用框架,它将原生Java对象序列...

空空如也

空空如也

1 2
收藏数 39
精华内容 15
关键字:

在其他app上直接翻译