小编hed*_*gie的帖子

Android上默认安装了哪些字体?

Android设备上默认安装了哪些字体?

我知道Droid字体Roboto,但是像Arial,Times或Verdana这样的核心网络字体呢?他们有空吗?Android设备上默认安装了哪些其他字体?

(之前已经问过这个问题,但接受的答案已经过时)

fonts android

24
推荐指数
2
解决办法
8万
查看次数

如何覆盖django管理员翻译?

我试图覆盖Django管理站点的默认翻译.

我正在使用Django 1.6.我的settings.py包含:

import os
BASE_DIR = os.path.dirname(os.path.dirname(__file__))

# ...

LANGUAGE_CODE = 'nl'
USE_I18N = True
USE_L10N = True
LOCALE_PATHS = (os.path.join(BASE_DIR, "locale"),)
Run Code Online (Sandbox Code Playgroud)

我已将文件复制settings.py到,django/contrib/admin/locale/nl/LC_MESSAGES/django.po并对其进行了一些更改.

接下来,我已经运行my_project/locale/nl/LC_MESSAGES/django.popython manage.py compilemessages.

python manage.py runserver然而,当我访问时,我仍然看到Django的默认管理员翻译.我究竟做错了什么?

编辑 - 我发现了问题:

以上描述是覆盖应用翻译的正确方法.我遵循自己的指示,他们工作.我的问题的原因是我localhost:8000/admin第一次意外地省略了子目录.我是一个愚蠢的人.

python django localization internationalization django-admin

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

如何为可重用的Django应用程序进行迁移?

我正在制作一个没有项目的可重用的Django应用程序.这是目录结构:

/
/myapp/
/myapp/models.py
/myapp/migrations/
/myapp/migrations/__init__.py
Run Code Online (Sandbox Code Playgroud)

当我运行时,django-admin makemigrations我收到以下错误:

django.core.exceptions.ImproperlyConfigured: Requested setting DEFAULT_INDEX_TABLESPACE, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.
Run Code Online (Sandbox Code Playgroud)

显然,这是因为我没有配置设置模块,因为这是一个可重用的应用程序.但是,我仍然希望通过我的应用程序发布迁移.我该怎么做?

python migration django

9
推荐指数
3
解决办法
1341
查看次数

如何将 PostgreSQL 从版本 11 升级到版本 13?

我尝试在 Debian 系统上将 PostgreSQL 从 11 升级到 13,但失败了。我有一个需要升级的集群:

\n
$ sudo -u postgres pg_lsclusters\nVer Cluster Port Status Owner    Data directory               Log file\n11  main    5432 online postgres /var/lib/postgresql/11/main  /var/log/postgresql/postgresql-11-main.log\n
Run Code Online (Sandbox Code Playgroud)\n

这是我尝试升级的方法:

\n
$ sudo -u postgres pg_upgradecluster 11 main\nStopping old cluster...\nWarning: stopping the cluster using pg_ctlcluster will mark the systemd unit as failed. Consider using systemctl:\n  sudo systemctl stop postgresql@11-main\nRestarting old cluster with restricted connections...\nNotice: extra pg_ctl/postgres options given, bypassing systemctl for start operation\nError: cluster configuration already exists\nError: Could not create …
Run Code Online (Sandbox Code Playgroud)

postgresql debian

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

如何删除用django-ckeditor上传的图片?

我在Django管理界面的CKEditor中上传了一些图像.我可以通过单击编辑器中的"图像"按钮来浏览和选择图像,然后在弹出的窗口中单击"浏览服务器".这是弹出窗口的屏幕截图:

CKEditor弹出窗口的屏幕截图

我的问题是:如何删除服务器上的图像?

django ckeditor django-ckeditor

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

多次捕获相同异常的优雅方法是什么?

我有一些Python代码尝试一堆不同的数据库查询,然后得出结论数据库是空的并放弃.这是一个简化的例子:

try:
    result = Object.get(name="requested_object")
except Object.DoesNotExist:
    try:
        result = Object.get(name="default_object")
    except Object.DoesNotExist:
        try:
            result = Object.get(pk=1)
        except Object.DoesNotExist:
            print "The database is empty!"
            raise
Run Code Online (Sandbox Code Playgroud)

请注意,我试图捕获的异常每次都是相同的.当然必须有一种方法可以做到这一点,而无需不必要的重复和嵌套.如果没有嵌套的try ... except语句,我怎样才能实现相同的行为?

python

6
推荐指数
2
解决办法
1678
查看次数

如何处理Haskell中的运行时错误?

我正在尝试通过编写一个简单的控制台象棋游戏来学习Haskell.它显示一个棋盘,并从SAN表示法中的标准输入移动.这是我到目前为止所得到的:

import System.IO
import Chess
import Chess.FEN

main = do
  putStrLn "Welcome to Console Chess!"
  putStrLn $ show defaultBoard
  gameLoop defaultBoard

gameLoop board = do
  putStr "Your move: "
  hFlush stdout
  move <- getLine
  let newBoard = moveSAN move board
  case newBoard of
   Left _ -> do
     putStrLn "Invalid move, try again..."
     gameLoop board
   Right b -> do
     putStrLn $ show b
     gameLoop b
Run Code Online (Sandbox Code Playgroud)

问题是对moveSAN函数的调用有时会使程序崩溃,从而失去游戏中的所有进展.例如,在"您的移动:"提示下按Enter键会产生:

Your move: 
cchess: Prelude.head: empty list
Run Code Online (Sandbox Code Playgroud)

否则,输入两位数的数字会产生:

Your move: 11
cchess: …
Run Code Online (Sandbox Code Playgroud)

haskell exception-handling runtime-error

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

如何在 macOS 上按名称以编程方式打开应用程序?

我正在编写一个跨平台的 Python 应用程序,它充当DOSBox的前端。它需要使用许多命令行参数调用 DOSBox 可执行文件。我不想硬编码到 DOSBox 的特定路径,因为它可能取决于用户安装它的位置。

在 Linux 上,我可以简单地做:

import subprocess
subprocess.run(['dosbox'] + args)
Run Code Online (Sandbox Code Playgroud)

但是,在 macOS 上,我目前使用以下代码:

import subprocess
subprocess.run(['/Applications/dosbox.app/Contents/MacOS/DOSBox'] + args)
Run Code Online (Sandbox Code Playgroud)

这看起来非常具体,我什至不确定它是否有效,因为我没有要测试的 Mac。

在 macOS 上按名称打开应用程序的正确方法是什么?

(注意:我也为 Windows提出了这个兄弟问题。)

python macos

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

我应该在我编写的每个 Python 脚本中包含这个样板代码吗?

我的老板让我将以下几行(来自这个答案)放入我编写的 Python 3 脚本中:

import sys
import codecs
sys.stdout = codecs.getwriter("utf-8")(sys.stdout.detach()) 
Run Code Online (Sandbox Code Playgroud)

他说这是为了防止UnicodeEncodeErrors在非 UTF8 语言环境中打印 Unicode 字符。我想知道这是否真的有必要,以及为什么 Python 不会在没有样板代码的情况下正确处理编码/解码。

使 Python 脚本与不同操作系统语言环境兼容的最 Pythonic 方法是什么?这个样板代码到底做了什么?

python unicode python-3.x

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

在并发请求的情况下,将数据存储在 Django 应用程序的“线程本地存储”中是否安全?

我在很多地方都看到,使用线程本地存储来存储 Django 应用程序中的任何数据并不是一个好的做法。但这是我存储请求对象的唯一方法。我需要存储它,因为我的应用程序具有复杂的结构。而且我无法继续在每个函数调用或类初始化时传递请求对象。

我需要将请求对象中的 cookie 和标头传递给我在应用程序中不同位置进行的一些 api 调用。

我将此用作参考: https://blndxp.wordpress.com/2016/03/04/django-get-current-user-anywhere-in-your-code-using-a-middleware/

所以我正在使用中间件,如参考文献中所述。而且,这就是请求的存储方式

from threading import local
_thread_locals = local()
_thread_locals.request = request
Run Code Online (Sandbox Code Playgroud)

并且,这就是获取数据的方式:

getattr(_thread_locals, "request", None)
Run Code Online (Sandbox Code Playgroud)

那么存储在线程中的数据是否是该特定请求的本地数据呢?或者,如果同时发生另一个请求,它们是否都使用相同的数据?(这当然不是我想要的)

或者有没有新的方法来处理这个老问题(全局存储请求对象)

注意:我也在async我的 Django 应用程序中的某些地方使用(如果这很重要的话)。

python django python-multithreading python-3.x django-rest-framework

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

如何加入两个 Haskell IO monad

以下(工作)Haskell 程序输出随机拼写:

import System.Random

spells =
  [ "Abracadabra!"
  , "Hocus pocus!"
  , "Simsalabim!"
  ]

main :: IO()
main = do
  spell <- (spells !!) <$> randomRIO (0, length spells - 1)
  putStrLn spell
Run Code Online (Sandbox Code Playgroud)

然而,这个变量spell是非常无用的。它存储从法术列表中选择的随机字符串,但随后会立即传递给putStrLn函数并且不再使用。我尝试将两个 IO 操作合并为一行,如下所示:

main = putStrLn <$> (spells !!) <$> randomRIO (0, length spells - 1)
Run Code Online (Sandbox Code Playgroud)

但我收到以下错误:

    • Couldn't match type ‘IO ()’ with ‘()’
      Expected type: Int -> ()
        Actual type: Int -> IO ()
    • In the first argument of ‘(<$>)’, …
Run Code Online (Sandbox Code Playgroud)

random monads haskell io-monad

3
推荐指数
2
解决办法
232
查看次数

如何使用 Ansible/Jinja2 将字符串拆分为列表?

我有以下变量:

domain_names:
  - app1.example.com
  - app2.example.com

customers:
  - name: customer1
  - name: customer2
Run Code Online (Sandbox Code Playgroud)

我正在尝试生成以下域名列表:

- customer1.app1.example.com
- customer2.app1.example.com
- customer1.app2.example.com
- customer2.app2.example.com
Run Code Online (Sandbox Code Playgroud)

通过使用以下 Ansible/Jinja2 代码:

- name: check which certificates exist
  stat:
    path: '/etc/nginx/{{item}}.crt'
  register: cert_file
  loop: '{% for d in domain_names %}{{ d }} {% for customer in customers %}{{ customer.name }}.{{ d }} {% endfor %}{% endfor %}'
Run Code Online (Sandbox Code Playgroud)

但是,我收到以下错误:

failed | msg: Invalid data passed to 'loop', it requires a list, got this instead: customer1.app1.example.com customer2.app1.example.com customer1.app2.example.com customer2.app2.example.com. …
Run Code Online (Sandbox Code Playgroud)

jinja2 ansible

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