小编Ner*_*ull的帖子

Python-Wand序列无法从内存中清除

如果我做以下事情

for root, dirs, files in os.walk(myDir):
  for myFile in files:
    with Image(filename=myFile) as img:
      with Image(image=img) as main:
        print main.sequence[0].width
Run Code Online (Sandbox Code Playgroud)

我使用Wand最终导致内存故障.

我确定它的.sequence部分.如果我删除它,它的罚款.我已经阅读了所有我能在序列上找到的内容,它是一个Image vs SingleImage.

SingleImage序列部分保留在内存中.我试过使用以下内容:

main.sequence[0].destroy()
Run Code Online (Sandbox Code Playgroud)

但它并没有摆脱记忆中的形象.

我正在处理数千个文件,但是在几十个文件之后我就会出现分段错误.

我很确定它关闭了'主'图像.只是不是main.sequence SingleImage.

有办法强行关闭吗?

我应该说我也试过这个

with Image(image=img.sequence[0]) as main:
Run Code Online (Sandbox Code Playgroud)

认为With语句将间接关闭它.但事实并非如此.

有人可以帮忙吗?

imagemagick wand

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

Matplotlib条形图不绘制边框/边

我的条形码有这个代码.

ax1 = plt.subplot2grid((1,1),(0,0))
ax1.bar(edges2, Nnorm, width=0.02, edgecolor='green', linewidth=20)
Run Code Online (Sandbox Code Playgroud)

我认为应该让我的条形图有绿色边缘.但事实并非如此.它在最左边的绿色上形成一个条形.我究竟做错了什么?Facecolor有效.

在此输入图像描述

python matplotlib

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

Laravel/PDO 没有转义反斜杠或引号?

在 Laravel 中,我有一个搜索框,用户可以输入内容来搜索数据库。

它在提交时执行以下代码(此处仅显示重要部分)。

$searchBox = $request->get('searchBox');

...
$getSearch->where(function($query) use($searchBox) {
    $query->orWhere('event', 'LIKE', '%'.$searchBox.'%');
    $query->orWhere('sub_event', 'LIKE', '%'.$searchBox.'%');
});
Run Code Online (Sandbox Code Playgroud)

问题是,如果用户输入双引号 (") 或反斜杠 (),查询就会失败。似乎没有转义这些字符。

如果我这样做。

$searchBox = addslashes($searchBox);
Run Code Online (Sandbox Code Playgroud)

然后效果很好。

我不知道这是 Laravel 还是 PDO 问题(或者根本不是问题)。我是否需要清理所有用户输入的反斜杠?我应该使用addslashes吗?或者我不明白这是如何运作的。

当搜索词包含反斜杠或双引号时,如何在 mysql/PDO/laravel 中执行 LIKE 搜索?

谢谢

*编辑

我应该检查一下我实际遇到的错误是什么。我现在已经做到了。

我认为它给出了一个奇怪的错误,因为当我运行查询时它给了我的网页重定向循环。但下面 @David Smith 的评论让我重新检查了这一点。事实证明,导致循环的查询结果为零。

很抱歉,我从一开始就应该更清楚这一点。查询实际上并没有“失败”,我只是没有得到任何结果。

但我需要人们能够搜索可能(并且确实)包含反斜杠和双引号的注释/字段。

实际上,修复循环似乎双引号现在可以工作了。它只是导致零结果的反斜杠。如果我搜索带有反斜杠的短语,则不会得到任何结果。

我不认为这是因为查询将反斜杠视为转义字符,而不是要搜索的反斜杠。

如果这是正确的,那么我如何允许我的用户搜索包含反斜杠的术语?addslashes 仍然是要走的路吗?

mysql pdo laravel

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

Laravel 8 在受保护的应用程序/模型中更改用户表名称不起作用

我有一个相对较新的 laravel 8 安装与 jetstream/fortify。我正在尝试使用预先存在的用户表,该表的表名与默认的“用户”不同。

通过阅读周围的内容,我认为我必须在 app\Model\User.php 中更新它。我所做的如下:

 class User extends Authenticatable               
 14 {                                                                                                       
 15     /**                                                                                                                                                                                                
 16     .* My custom users table                        
 17     .*/
 18     protected $table = "user";  // note here it is user not users
 19     protected $primaryKey = "user_id";
Run Code Online (Sandbox Code Playgroud)

但是当我尝试注册新用户时,我收到 SQLSTATE 错误,指出未找到基表或视图......“mydb.users”不存在。

所以它仍然在寻找“用户”而不是“用户”。

我还需要在哪里更改此设置?

该文档似乎没有提到其他任何地方,其他堆栈答案似乎表明这应该足够了

编辑:这是我的 config/auth.php 部分

 67                                                                                         
 68     'providers' => [                                                                                 
 69     .   'users' => [                                               
 70     .   .   'driver' => 'eloquent',                                           
 71     .   .   'model' => App\Models\User::class,                                                                                  
 72     .   ],                                                                                                                                                                                                               
 73                    
 74 …
Run Code Online (Sandbox Code Playgroud)

php laravel laravel-fortify

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

标签 统计

laravel ×2

imagemagick ×1

laravel-fortify ×1

matplotlib ×1

mysql ×1

pdo ×1

php ×1

python ×1

wand ×1