小编Max*_*Max的帖子

领域 - 添加包含初始数据的文件到项目(iOS/Swift)

我正在使用swift开发iOS应用程序,并选择Realm作为它的数据库解决方案.我使用realm docs中的write/add函数在AppDelegate中编写了默认数据,它工作得很好.所以在第一次启动后,我有一个带有初始数据的*.realm文件.在Realm文档中,我找到了一个名为"使用应用程序捆绑领域"的部分,我将*.realm文件添加到项目中并在编写时构建阶段.

我无法理解接下来应该做什么(以及压缩*.realm文件的部分内容).我试图理解迁移示例中的代码,但我不太了解Obj-C.

请尽可能明确地将带有初始数据的*.realm文件添加到swift ios项目中,并在首次启动时将此数据加载到Realm数据库中.

xcode realm ios swift

15
推荐指数
1
解决办法
6917
查看次数

ios - 多个NavigationControllers之间的导航

我试图理解使用NavigationController在(和没有)ViewControllers之间导航的行为,我在阅读文章和文档时误解了一些事情,所以我决定问他们.

主要问题是:如果我们在Storyboard中有多个NavigationControllers并希望从一个到另一个,会发生什么?(这可以通过我们在常见的VC之间使用segue来实现,我是对的吗?)

据我所知,NavigationController代表了一堆ViewControllers,我们可以在其中弹出并推送这些VC.那么现在我们将第一个NavigationController的VC的"位置"从第二个改为VC,接下来会发生什么?第一个堆栈消失了,现在我们只在第二个堆栈内工作了?如果是这样,是否意味着第一个NavigationController的VC堆栈是否已从内存中删除?

也许我完全误解了某些东西或者可能不是:).我很乐意看到您的回复,并希望向您询问有关导航力学的更多详细问题.

UPDATE

关键在于:假设我们有一个(初始)VC,其中两个按钮代表应用程序的两个独立部分.接下来我们点击第一个按钮然后转到一个NC的RootVC,而不是回到我们的初始VC按下第二个按钮然后转到另一个NC.当我们回到最初的VC时,第一个NC的堆栈发生了什么?最初的"NC"到初始VC的最佳方式是什么?

UPDATE

我试图了解内存会发生什么,以及当前场景中哪些VC等等.如果我们在场景中有一些额外的VC,也许它绝对不重要,也许我们确实需要它们更快地在NC(或只是VC)之间切换.所以我想了解它是如何运作的.

viewcontroller ios segue swift

11
推荐指数
1
解决办法
9000
查看次数

FastAPI - (psycopg2.OperationalError) 服务器意外关闭了连接

我有一个使用 FastAPI 和 SQLAlchemy 构建的 Web 应用程序,它在本地使用 Docker 运行正常,但在带有托管 Postgres DB 的 DigitalOcean 上,db 查询失败并出现错误:

(psycopg2.OperationalError) 服务器意外关闭了连接\n\t这可能意味着服务器在处理请求之前或处理请求时异常终止\n\t。\n\n(此错误的背景:http ://sqlalche.me/e /14/e3q8 )"}

我之前在使用 Flask 时遇到过这个错误,问题是我必须设置引擎选项pool_pre_ping=True并将我的 cluster/droplet IP 添加到数据库的可信来源。但是看起来对于 FastAPI 这还不够。我还能做些什么来成功执行查询?

背景

  • 蟒蛇 3.9
  • DigitalOcean 托管 Postgres 13
  • psycopg==2.8.6 但也尝试了 2.8.5(100% 在与 Flask 类似的情况下对我有用)和 2.7.4 以防万一
  • 我已经pool_pre_ping=True设置
    • 我检查过它确实True在使用请求之前设置为正确session.get_bind().pool._pre_ping,它实际上是True
  • 我检查了我的集群节点的 IP 是否在数据库可信来源中
  • 我使用一名uvicorn.workers.UvicornH11Worker工人使用 gunicorn 运行该应用程序
  • 我使用中间件访问 FastAPI enpoints 中的 db 会话,如下所示:
class DBMiddleware:
    def __init__(self, app, sqlalchemy_uri):
        self.app = app
        self.sqlalchemy_uri = …
Run Code Online (Sandbox Code Playgroud)

python postgresql sqlalchemy digital-ocean fastapi

10
推荐指数
2
解决办法
646
查看次数

Docker - 无法在卷内的容器之间共享数据(docker-compose 3)

我现在有一些Web应用程序的容器(nginx,gunicorn,postgres和节点从源代码构建静态文件和React服务器端呈现).在节点容器的Dockerfile中,我有两个步骤:构建和运行(Dockerfile.node).它最终在容器内有两个目录:bundle_client- 是nginx的静态和bundle_server- 它在节点容器本身用于启动快速服务器.

然后我需要bundle_client与nginx容器共享一个内置的静态文件夹().要根据我的docker -compose参考这样做,docker-compose.yml我有以下服务(参见完整的docker-compose.yml):

node:
  volumes:
    - vnode:/usr/src

nginx:
  volumes:
    - vnode:/var/www/tg/static
  depends_on:
    - node
Run Code Online (Sandbox Code Playgroud)

和数量:

volumes:
  vnode:
Run Code Online (Sandbox Code Playgroud)

运行docker-compose build完成且没有错误.运行docker-compose up运行每一个好,我可以打开localhost:80,有nginx,gunicorn和节点表达SSR都工作得很好,我可以看到一个网页,但所有静态文件返回404未找到错误.

如果我检查卷,docker volume ls我可以看到两个新创建的卷tg_vnode(我们在这里考虑)和tg_vdata(参见完整的docker-compose.yml)

如果我进入一个nginx容器,docker run -ti -v /tmp:/tmp tg_node /bin/bash我看不到我的www/tg/static文件夹应该从节点卷映射我的静态文件.此外,我尝试/var/www/tg/static使用nginx容器创建一个空文件夹,Dockerfile.nginx但它保持为空.

如果我在一个部分中映射bundle_client主机上的文件夹,因为它工作正常,我可以在浏览器中看到所有静态文件与nginx一起提供.docker-compose.ymlnginx.volumes- ./client/bundle_client:/var/www/tg/static

我做错了什么以及如何让我的容器与nginx容器共享构建的静态内容?

PS:我阅读了所有文档,所有github问题和stackoverflow问答,据我所知它必须工作,没有信息什么时候不做.

UPD:结果docker volume inspect …

docker docker-compose docker-volume

8
推荐指数
1
解决办法
3682
查看次数

带有Flask-Dance的Google OAuth(始终重定向到"选择帐户"google页面)

我有一个用Flask编写的应用程序,并尝试使用Flask-Dance(Flask-Dance Docs - Google示例)来启用Google OAuth.我得到了以下设置:

from flask import redirect, url_for, jsonify, Blueprint
from flask_dance.contrib.google import make_google_blueprint, google

from server.app import app

# Internal auth blueprint
auth = Blueprint('auth', __name__, url_prefix='/auth')

# Google auth blueprint
google_login = make_google_blueprint(
    client_id=app.config['GOOGLE_CLIENT_ID'],
    client_secret=app.config['GOOGLE_CLIENT_SECRET'],
    scope=['profile', 'email']
)


def auth_google_view():
    """
    Authenticate user with google
    """

    # Not authorized
    print(google.authorized)
    if not google.authorized:
        return redirect(url_for('google.login'))

    # Authorized - check data
    user_info = google.get('/oauth2/v2/userinfo')
    if user_info.ok:
        return jsonify({'status': 'ok', 'email': user_info.json() .['email']}), 200
    return jsonify({'status': …
Run Code Online (Sandbox Code Playgroud)

oauth flask google-oauth flask-oauthlib

7
推荐指数
1
解决办法
1454
查看次数

Redux combineReducer使用Flow和flow-typed for redux

我在应用程序中有两个减速器,结合了减速器(reducer.js).

import { combineReducers } from 'redux';

export const reducers = {
    search: searchReducer,
    table: tableReducer
};

export const reducer = combineReducer(reducers);
Run Code Online (Sandbox Code Playgroud)

此外,我还有一个代码片段,可以使用来自flow-typed redux_v3.xxjs的Store 自动解析reducers(来自此Medium帖子)的商店类型

import { reducers } from './reducer';

type Reducers = typeof reducers;

type $ExtractFunctionReturn = <V>(v: (...args: any) => V) => V;
export type State = $ObjMap<Reducers, $ExtractFunctionReturn>;

export type Store = ReduxStore<State, Actions>;
Run Code Online (Sandbox Code Playgroud)

我从流式类型的CombinedReducer得到一个错误,它找不到reducers(搜索和表).

src/types.js:65
65: export type Store = ReduxStore<State, Actions>;
                                ^^^^^ property `search`. Property not 
found in
54:   declare function combineReducers<O: …
Run Code Online (Sandbox Code Playgroud)

reactjs flowtype redux flow-typed

5
推荐指数
0
解决办法
1140
查看次数

无法在 docker build 上安装位于私有 Nexus 存储库中的 Python 包

我有一个使用 Nexus 的私人 PyPi 注册表。我可以从我的主机发布/安装,没有任何问题(我的个人包以及通过 PyPi nexus 代理的常见包)。当我尝试使用 Dockerfile 构建 docker 映像时,它既允许我安装自己的包,也不允许通过 Nexus 代理注册表安装公共包(但我仍然可以从公共公共注册表https://pypi.org/安装公共包)。

Dockerfile(部分)

RUN pypy3 -m pip install --index-url https://username:password@host/repository/pypi-proxy/ flask
RUN pypy3 -m pip install --index-url https://username:password@host/repository/pypi-private/ my
Run Code Online (Sandbox Code Playgroud)

错误

Collecting flask
  ERROR: Could not find a version that satisfies the requirement flask (from versions: none)
ERROR: No matching distribution found for flask
Run Code Online (Sandbox Code Playgroud)

我看到 DNS 存在问题,但我可以从中安装,https://pypi.org/所以情况并非如此。

python nexus pypi docker

3
推荐指数
1
解决办法
5112
查看次数

带有证书管理器的 Istio Kubernetes Ingress:在版本“certmanager.k8s.io/v1alpha1”中没有匹配种类“证书”

我正在尝试为我的 K8s/Istio 集群配置 HTTPS。我从头开始多次逐步遵循此官方教程,每次尝试创建证书资源时都会遇到相同的错误。

no matches for kind "Certificate" in version "certmanager.k8s.io/v1alpha1"
Run Code Online (Sandbox Code Playgroud)

我尝试根据官方文档手动安装 cert-manager 及其 CRD ,但没有帮助。

cert-manager-5ff755b6d5-9ncgr                               1/1       Running     0          6m55s
cert-manager-cainjector-576978ffc8-4db4l                    1/1       Running     0          6m55s
cert-manager-webhook-c67fbc858-wvtgs                        1/1       Running     0          6m55s
Run Code Online (Sandbox Code Playgroud)

无法找到有关此错误的任何信息,因为它在开箱即用安装后或安装 cert-manager 的 CRD 后对每个人都有效。

ssl kubernetes lets-encrypt istio cert-manager

2
推荐指数
1
解决办法
1970
查看次数