小编Bob*_*Dem的帖子

在DRF中拒绝权限时返回自定义消息

Django REST Framework一个关于权限的优秀文档.我已经能够使用预先制作的权限类,并且还构建了自己的权限.

但是,有一些API方法,其中"权限被拒绝"通用消息对用户来说不是很有用.例如,如果用户已通过身份验证但帐户已过期,那么让用户知道他的帐户已过期而不仅仅是权限被拒绝错误会更好.

在构建自定义权限类时,您可以返回TrueFalse- 根据文档.但是,如上所述,我希望向用户显示更多信息.怎么做到这一点?

django permissions django-rest-framework

8
推荐指数
3
解决办法
4364
查看次数

未定义的方法File :: save()(Laravel模型)

我正在使用Laravel构建一个新的Web项目.我正在使用Eloquent(它的ORM)来完成所有与数据库相关的东西.我有一个带有两个表的SQLite数据库:'images'和'files'.因此,我有两个模型:'Image.php'(类Image扩展Eloquent)和'File.php'(类File扩展Eloquent).

根据文档我做得对.我尝试使用Image模型并且工作完美.典型使用模型的示例:

$image = new Image;
$image->val1 = $val1;
$image->val2 = $val2;
$image->save();
Run Code Online (Sandbox Code Playgroud)

但是由于某些原因我不知道,File模型没有按预期工作.我检查了一切:表名,类名,文件名,表......对我来说似乎没问题.我试着做的基本相同:

$file = new File;
$file->val1 = $val1;
$file->val2 = $val2;
$file->save();
Run Code Online (Sandbox Code Playgroud)

在尝试运行时,我得到:

调用未定义的方法Illuminate\Support\Facades\File :: save()

如果我在保存之前执行var_dump(),似乎正在加载模型:

object(Illuminate\Support\Facades\File)#133 (4) {
    ["val1"]=> string(8) "abcdef" 
    ["val2"]=> string(10) "ghijkl" 
}
Run Code Online (Sandbox Code Playgroud)

我在这里错过了什么?

php database model laravel eloquent

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

了解InnoDB外键

我正在关注一个PHP和MySQL教程.此时,我必须创建一个看起来像这样的数据库:

DB Schema

我手动创建了数据库,但我不明白roll表的重点.例如,假设我要添加一部电影:我怎么做,因为我不被允许?示例错误:

#1452 - Cannot add or update a child row: a foreign key constraint fails (`test`.`movie`, CONSTRAINT `movie_ibfk_1` FOREIGN KEY (`movieCode`) REFERENCES `roll` (`movieCode`) ON DELETE CASCADE) 
Run Code Online (Sandbox Code Playgroud)

我个人会这样做:

表艺术家:artistId,名字,姓氏,国籍,dateOfBirth,otherInfo表电影:movieCode,title,image,category,description,artistId

作为粗体的相关外键.但是,我不明白在那里使用滚动表的概念.有人可以为我澄清这个,因为我想像教程假装教的那样做吗?

到目前为止我有DB模式:

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

CREATE TABLE IF NOT EXISTS `artist` (
  `artistId` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `firstName` char(30) NOT NULL,
  `lastName` char(30) NOT NULL,
  `dateOfBirth` date NOT NULL,
  `nationality` char(30) NOT NULL,
  `otherInfo` text NOT NULL,
  PRIMARY KEY (`artistId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;


CREATE …
Run Code Online (Sandbox Code Playgroud)

php mysql sql innodb

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

如何正确修复“您创建了太多的HashedWheelTimer实例”?

我有一个Play应用程序,它创建了一些应用程序,WSClient因为我必须限制每个应用程序中的最大连接数(因为它们用于不同的目的,限制也不同),并且此功能没有全局设置。我在日志中得到这个:

ResourceLeakDetector - LEAK: You are creating too many HashedWheelTimer instances. HashedWheelTimer is a shared resource that must be reused across the JVM,so that only a few instances are created.

我试图为此找到一种解决方案,但是不幸的是,我不知道如何HashedWheelTimer在客户端之间共享实例。

multithreading scala netty playframework

6
推荐指数
0
解决办法
2002
查看次数

从 Redis (Django) 中删除会话

我使用 Django 和 Redis 作为会话引擎(也是 Celery,但那是别的东西)。它工作得很好,我可以看到速度的提高。

SESSION_ENGINE = 'django.contrib.sessions.backends.cached_db'
Run Code Online (Sandbox Code Playgroud)

我有一个脚本,每分钟运行一次,通过某些方法检查活动用户,如果用户在最近一分钟内没有活动,则会话将被删除。这样做是为了满足客户的跟踪需求。

在我切换到 Redis 作为会话引擎之前,此脚本运行良好。会话确实从数据库中删除,但不会从 Redis 中删除。我没有为此使用任何 Django 内置方法,而是使用我自己的函数:

def clean_sessions():
    stored_sessions = Session.objects.all()
    active_users = active_users(minutes=1)
    active_users_ids = [user.id for user in active_users]
    for session in stored_sessions:
        session_uid = session.get_decoded().get('_auth_user_id')
        if not session_uid:
            session.delete()
            continue
        if session_uid not in active_users_ids:
            user = User.objects.get(pk=session_uid)
            ## some code between ##
            session.delete()
Run Code Online (Sandbox Code Playgroud)

我的问题是,如何从缓存中删除会话,以便用户实际上已注销?

django session django-authentication redis django-redis

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

为什么我需要使用andThen才能模拟匹配期货?

我发现为了模式匹配Futurefur Success/ Failure,我需要使用andThen(或onComplete,onSuccess...)而不能使用map.这是为什么?

我想做什么(简化,我匹配Success等等):

val f1 = Future(throw new Exception("Oops"))
f1 map { case Failure(e) => ??? }
Run Code Online (Sandbox Code Playgroud)

得到:

error: constructor cannot be instantiated to expected type;
 found   : scala.util.Failure[T]
 required: Nothing
       f1 map { case Failure(e) => ??? }
Run Code Online (Sandbox Code Playgroud)

我最终做了什么:

val f1 = Future(throw new Exception("Oops"))
f1 andThen { case Failure(e) => ??? }
Run Code Online (Sandbox Code Playgroud)

我想明白为什么map不能在这里使用.

scala future pattern-matching

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

什么是str()代表这里?

我是一名初学Python程序员,我非常喜欢安全性.但是,我正在学习,今天我偶然发现了一个Python脚本,它很容易使用NTP服务器通过NTP"漏洞"提供的放大来执行DoS攻击.

如果你看一下第18行的脚本,你会看到:

data=str("\x17\x00\x03\x2a") + str("\x00")*4
Run Code Online (Sandbox Code Playgroud)

但是,如果我去Python控制台并尝试打印它,它返回的内容没有任何意义:

>>> str("\x17\x00\x03\x2a") + str("\x00")*4
*
Run Code Online (Sandbox Code Playgroud)

显然我在这里遗漏了一些东西,但我不知道如何找到它.有人可以向我解释一下吗?

python security networking

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