小编Aks*_*hay的帖子

将log4j2与slf4j一起使用

所以我尝试在他们的网站上遵循这个(非maven实现)和要求,将slf4j添加到log4j.并尝试使用此代码

public static void main(String[] args) {
        Logger logger = LoggerFactory.getLogger(Main.class);
        logger.info("test");
    }
Run Code Online (Sandbox Code Playgroud)

并将以下内容添加到我的库中

  • log4j的-API-2.3.jar
  • log4j的核心-2.3.jar
  • log4j的-sl4j-IMPL-2.3.jar
  • log4j的到sl4j-2.3.jar
  • SLF4J-API 1.7.12.jar

当我尝试运行它时,我收到以下错误

Exception in thread "main" java.lang.StackOverflowError
    at java.util.concurrent.ConcurrentHashMap.get(ConcurrentHashMap.java:936)
    at java.util.concurrent.ConcurrentHashMap.containsKey(ConcurrentHashMap.java:964)
    at org.apache.logging.slf4j.SLF4JLoggerContext.getLogger(SLF4JLoggerContext.java:40)
    at org.apache.logging.slf4j.Log4jLoggerFactory.newLogger(Log4jLoggerFactory.java:37)
    at org.apache.logging.slf4j.Log4jLoggerFactory.newLogger(Log4jLoggerFactory.java:29)
    at org.apache.logging.log4j.spi.AbstractLoggerAdapter.getLogger(AbstractLoggerAdapter.java:47)
    at org.apache.logging.slf4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:29)
    at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:284)
    at org.apache.logging.slf4j.SLF4JLoggerContext.getLogger(SLF4JLoggerContext.java:41)
    at org.apache.logging.slf4j.Log4jLoggerFactory.newLogger(Log4jLoggerFactory.java:37)
    at org.apache.logging.slf4j.Log4jLoggerFactory.newLogger(Log4jLoggerFactory.java:29)
    at org.apache.logging.log4j.spi.AbstractLoggerAdapter.getLogger(AbstractLoggerAdapter.java:47)
    at org.apache.logging.slf4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:29)
    at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:284)...
Run Code Online (Sandbox Code Playgroud)

知道我哪里错了吗?

java slf4j log4j2

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

列出 Django 中的所有静态资源

有没有办法从视图中列出所有静态资产。一种方法是使用绝对路径,但是 Django 是否有这样做的方法?我尝试使用的另一种方法是request.build_absolute_uri(),但os.listdir()无法打开它,因为它是 URL。

有什么建议么?

我通过 S3 提供文件。

python django

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

如何写入大JSON数据?

我一直在尝试将大量(> 800mb)数据写入JSON文件;我做了一些相当多的试验和错误来获得此代码:

def write_to_cube(data):
    with open('test.json') as file1:
        temp_data = json.load(file1)

    temp_data.update(data)

    file1.close()

    with open('test.json', 'w') as f:
        json.dump(temp_data, f)

        f.close()
Run Code Online (Sandbox Code Playgroud)

运行它只需调用该函数write_to_cube({"some_data" = data})

现在这段代码的问题是,对于少量数据来说速度很快,但是当test.json文件超过 800mb 时就会出现问题。当我尝试更新或添加数据时,需要很长时间。

我知道有外部库,例如simplejsonjsonpickle,我不太确定如何使用它们。

还有其他办法解决这个问题吗?

更新:

我不确定这怎么可能是重复的,其他文章没有提到编写或更新大型 JSON 文件,而是只提到了解析。

有没有一种内存高效且快速的方法来在 python 中加载大 json 文件?

在Python中读取相当大的json文件

上述任何一个都不能重复解决这个问题。他们没有谈论任何有关写作或更新的事情。

python json

6
推荐指数
1
解决办法
1万
查看次数

大于缓冲区页面 1/3 的值无法索引 Django 错误

我正在使用 Heroku 来部署 Django 应用程序,并且尝试使用以下模型将很长的数据放入表中(将数据添加到content

模型.py:

class ContentModel(models.Model):
    ref_id = models.CharField(primary_key=True, max_length=120, unique=True)
    content = models.TextField()  #<-------
    timestamp = models.DateTimeField(auto_now_add=True, auto_now=False)

    def __str__(self):
        return self.content

    class Meta:
        unique_together = ("content", "ref_id")
Run Code Online (Sandbox Code Playgroud)

但我收到以下错误:

  File "/app/.heroku/python/lib/python3.6/site-packages/django/db/backends/utils.py", line 64, in execute
    return self.cursor.execute(sql, params)
psycopg2.OperationalError: index row size 3496 exceeds maximum 2712 for index "editor_contentmodel_content_2192f49c_uniq"
HINT:  Values larger than 1/3 of a buffer page cannot be indexed.
Consider a function index of an MD5 hash of the value, or use full …
Run Code Online (Sandbox Code Playgroud)

python django postgresql heroku

5
推荐指数
1
解决办法
4551
查看次数

覆盖 Django 管理中的注销链接

有没有办法覆盖log outDjango 管理页面上的链接?我试图在用户注销时删除 cookie。

django

5
推荐指数
1
解决办法
4409
查看次数

将非 python 文件添加到 setup.py

我正在尝试添加*.ui&*.png文件setup.py,这就是我到目前为止所拥有的

from setuptools import setup, find_packages

from smlgui import __version__

setup(
    name='smlgui',
    version=__version__,
    packages=find_packages(),
    url='https://github.com/akshaybabloo/SML-GUI',
    license='MIT',
    author='Akshay Raj Gollahalli',
    author_email='akshay@gollahalli.com',
    description='Data exporter for Spikes Markup Language (SML).',
    requires=['click', 'pyqt'],
    scripts=['sml.sh', 'sml.cmd'],
    package_data={'smlgui': ['*.ui', '*.png']},
    include_package_data=True
)
Run Code Online (Sandbox Code Playgroud)

我不确定发生了什么,但是当我尝试执行python setup.py installpip install .*.py安装时。

我尝试按照此处给出的过程 ->使用 setup.py 包含非 Python 文件,但它没有帮助。

另外,我创建MANIFEST.in

include *.ui
include *.png
Run Code Online (Sandbox Code Playgroud)

我不确定是否必须告诉我setup.py读取此文件还是它会自动完成。

我的文件结构是

root_folder
|
|   MANIFEST.in
|   setup.py
|   sml.cmd …
Run Code Online (Sandbox Code Playgroud)

python

5
推荐指数
1
解决办法
3193
查看次数

Django 2 中的自定义 LoginView

我正在尝试在 Django 2 中自定义身份验证和视图,但问题是,如果用户已经通过身份验证,则仍会显示登录表单,并且不会重定向到适当的 URL。为了克服这个问题,我做了以下工作:

class CustomLoginView(LoginView):

    form_class = LoginForm
    template_name = 'login.html'

    def get_initial(self):
        if self.request.user.is_authenticated and self.request.user.is_staff and has_2fa(self.request.user):
            return HttpResponseRedirect(reverse('{}'.format(self.request.GET.get('next', 'portal_home'))))
        else:
            return self.initial.copy()

    def form_valid(self, form):

        if self.request.user.is_staff and not has_2fa(self.request.user):
            logger.info('is staff but does not have 2FA, redirecting to Authy account creator')
            auth_login(self.request, form.get_user())
            return redirect('2fa_register')
        auth_login(self.request, form.get_user())

        return HttpResponseRedirect(self.get_success_url())
Run Code Online (Sandbox Code Playgroud)

HttpResponseRedirectinget_initial()不会重定向到该/portal/页面。我也尝试过redirect('portal_home'),但没有任何反应,还是我需要编写自定义内容dispatch

任何帮助将非常感激。

django django-2.0

5
推荐指数
1
解决办法
9791
查看次数

片键和 Azure CosmosDB for MongoDB API

我创建了一个使用 MongoDB 的 Python SDK 的 CosmosDB 数据库,我们将数据库称为 ,school将集合称为students。在创建数据库时,Azure UI 要求我创建一个用于无限存储容量的分片键,我们称之为school.students

我用来pymongo添加以下文档:

{
  "id": "abc123",
  "name": "jack"
}
Run Code Online (Sandbox Code Playgroud)

代码如下:

{
  "id": "abc123",
  "name": "jack"
}
Run Code Online (Sandbox Code Playgroud)

当我选择 10GB 存储时,添加文档没有问题,但是当我选择带分片键的无限选项时,出现以下错误:

pymongo.errors.WriteError: document does not contain shard key at 'school.students'
Run Code Online (Sandbox Code Playgroud)

问题是,我应该在哪里使用分片键?以及如何克服这个问题?

python azure azure-cosmosdb azure-cosmosdb-mongoapi

4
推荐指数
1
解决办法
1万
查看次数

将 Cloud Firestore 限制为特定域

有没有办法限制 Cloud Firestore(用于托管/网络)进行 CRUD 操作,但仅限于一个域,比如说xyz.com

例如,下面的规则在read, update, delete未经授权的情况下锁定,但您仍然可以将write事物锁定到数据库。

service cloud.firestore {
  match /databases/{database}/documents {
    match /coming-soon-email-ids/{document=**} {
      allow write;
      allow read, update, delete: if request.auth.uid == !null;
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

还是我必须在其中集成 Google 的防火墙?

firebase firebase-security google-cloud-firestore

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

使用 Azure 应用程序网关时可以删除 Nginx 吗?

我有一个用于 docker 的 Web 应用程序,当前运行 django,gunicorn 作为 wsgi 服务器,Nginx 作为反向代理。我没有通过 Nginx 提供任何静态资产,并且 SSL 由 Azure 负责。

所以我的问题是,如果我使用 Azure 应用程序网关(有或没有 WAF),我可以删除 Nginx 吗?我看不出它有任何用处,除非我想使用缓存,但我不想使用缓存。HTTP/2 也由应用程序网关提供。

azure azure-web-app-service azure-application-gateway

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

在主窗口中打开文件选择器 - Javafx

我可以使用以下代码打开文件选择器

    @FXML
    private TextField myText;

    @FXML
    private Button browse;
    private Window primaryStage;


    @FXML
    private void initialize(){

        browse.setOnAction((event) -> {
            FileChooser fileChooser = new FileChooser();
            File file = fileChooser.showOpenDialog(primaryStage);
            String fileName = String.valueOf(file);
            myText.setText(fileName);
        });

    }
Run Code Online (Sandbox Code Playgroud)

但我正在尝试打开类似这样的文件选择器(Microsoft 更新程序的屏幕截图) 在此输入图像描述

谁能告诉我应该如何打开屏幕截图中所示的文件选择器(如顶层)?

谢谢。

java javafx

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

向 Powershell Core 脚本添加默认参数

我对 Powershell 非常陌生,我正在尝试为脚本文件中的两个参数添加默认值,但在执行时仍然要求我输入缺少的参数。

参数是

param(
    [string]
    $Build = "production",

    [bool]
    $Deploy = 1
)
Run Code Online (Sandbox Code Playgroud)

所以当我这样做时,./script.ps1 -Build我收到一个错误

/Users/akshayrajgollahalli/GitHub/gollahalli.com/script.ps1 : Missing an argument for parameter 'Build'. Specify a parameter of type 'System.String' and try again.
Run Code Online (Sandbox Code Playgroud)

但根据微软博客,这就是我正在做的。我不确定这里有什么错误。

更新 1:

另一种情况是我可能想要类似的东西./script.ps1 -Build local应该覆盖该production值。

powershell powershell-core

0
推荐指数
1
解决办法
1399
查看次数