小编Joh*_*ing的帖子

如何在数据库中存储实时聊天消息?

mysqldb目前正在使用我的数据库,我需要集成一个实时的消息传递功能.在chat demo那个龙卷风提供实现数据库,(而blog .)

此消息传递服务也将在未来兼作电子邮件(如Facebook的消息服务如何工作.聊天平台也是电子邮件.)无论如何,我想确保我当前的第一个聊天版本能够扩展作为电子邮件,总的来说,我需要将消息存储在数据库中.

这样的事情很简单:对于发送的每条聊天消息,查询数据库并在用户屏幕上显示消息.或者,这种方法是否容易受到高服务器负载和不良优化的影响?我应该如何构建"基础设施"以使其工作?

(我为这个问题中的一些固有的主观性道歉;但是,我更喜欢"测量两次,代码一次.")

输入,示例和资源受到赞赏.
问候.

python chat real-time tornado mysql-python

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

混淆金字塔授权,__ acl__和RootFactory

作为一种学习体验,我想建立一个以这种(简化)方式构建的网站:

  • 注册用户可以登录其帐户.每个用户都有自己的"个人资料"
  • 登录后,他们可以加入某些"网络"或组(或任何您想要称之为的网络).
  • 这些用户只有在加入这些网络时才能查看这些网络的内容.
  • 网络拥有管理员,每个管理员都具有不同的可自定义权限(x,y和z).这些管理员可以编辑网络的内容.

我该如何去与金字塔的实现这一点(在基本术语)__acl__,RootFactory以及授权/认证功能?每个网络相对于用户帐户的基本登录/注销功能如何拥有自己的权限?

我已多次阅读文档,并开始了解Pyramid安全性的工作原理; 但是,我觉得我需要一些更具体的澄清.例如,为了创建最简单的登录功能,我是否需要__acl__在我的RootFactory中指定一个,或者这只是定义各种组,无论谁可以登录?基本的东西,但也有足够的"不寻常"的情况,我可以看到它们如何融合在一起......

注意:我不是在找人写代码.我只是在一些我不理解的情况下寻找一些基本的规范.

谢谢您的帮助.

python pyramid

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

在Pyramid和Jinja 2模板中公开全局数据和函数

我有一个用户登录时的基本模板,在该基本模板上,我需要在下拉菜单中添加特定于用户的选项.带有选项的下拉菜单必须在所有处理程序中保持不变,即,任何时候使用子模板调用(扩展)基本模板.

除了执行必要的数据库查询,将查询结果分配给变量,并将该变量传递给每个处理程序(有很多),我如何将其合并为一个查询和一个变量,直接传递给基本模板?我jinja2也在使用模板.

我讨厌做一些如此繁琐的事情以换取更简单和可维护的东西.

有任何想法吗?谢谢.


编辑

所以我还没有发现任何东西,这正是我要找的; 但是,我决定至少在此期间取得一些进展.所以,我做了一个自定义装饰器,它接受一个视图返回的dict()并将适当的数据附加到它.例如:

def get_base_data(func):
    def wrapper(request):
        d = func(request)
        user_id = request.user.id  # used in query
        contact_group_data = ContactGroups.query.filter(...criteria...).all()
        d['contact_group_data'] = contact_group_data
        return d
    return wrapper
Run Code Online (Sandbox Code Playgroud)

现在,我至少可以简单地通过以下方式简单地装饰每个方法:

@view_config(...)
@get_base_data
def my_handler(request):
    pass  # rest of code...
Run Code Online (Sandbox Code Playgroud)

python jinja2 pyramid

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

Swift 包管理器:如何像在常规 Xcode 项目中一样加载 UIViewController + xib 对?

在常规的 iOS Xcode 项目中,当您创建 Cocoa touch 文件 ( MyVC.swift) 时,您还可以创建关联的 xib ( MyVC.xib)。调用super.init(nibName: nil, bundle: nil)视图控制器,然后插座就可以使用了。

在本例中,我尝试将项目中的代码移植到 Swift 包中,该包将在其他项目中重用。在 Swift 包中时,我找不到为视图控制器加载 xib 的方法。正确连接所有设备并致电 后super.init(nibName:bundle:),插座仍始终nil处于 的时间viewDidLoad

这在 Swift 包中可能吗?如果是这样,怎么办?如果没有,有什么替代方案吗?这感觉像是一个非常标准的用例。

Fwiw,我使用的是 swift-tools-version 5.3,我的平台是.iOS(.v13)


init我尝试过的各种s:

  • super.init(nibName: nil, bundle: nil)
  • super.init(nibName: nil, bundle: .main)
  • super.init(nibName: "\(Self.self)", bundle: .main)
  • super.init(nibName: nil, bundle: .init(for: Self.self))
  • super.init(nibName: "\(Self.self)", bundle: .init(for: Self.self))

xcode ios swift swift-package-manager

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

Python Tornado - 如何修复'URLhandler正好接受X参数'错误?

这是错误:

TypeError: __init__() takes exactly 1 argument (3 given)
ERROR:root:Exception in callback <tornado.stack_context._StackContextWrapper object at 0x1017d4470>
Traceback (most recent call last):
  File "/Library/Python/2.7/site-packages/tornado-2.4.1-py2.7.egg/tornado/ioloop.py", line  421, in _run_callback
    callback()
  File "/Library/Python/2.7/site-packages/tornado-2.4.1-py2.7.egg/tornado/iostream.py", line 311, in wrapper
    callback(*args)
  File "/Library/Python/2.7/site-packages/tornado-2.4.1-py2.7.egg/tornado/httpserver.py", line 268, in _on_headers
    self.request_callback(self._request)
  File "/Library/Python/2.7/site-packages/tornado-2.4.1-py2.7.egg/tornado/web.py", line 1395, in __call__
    handler = spec.handler_class(self, request, **spec.kwargs)
TypeError: __init__() takes exactly 1 argument (3 given)
Run Code Online (Sandbox Code Playgroud)

以下是代码:

class IndexHandler(tornado.web.RequestHandler):
    def __init__(self):
        self.title = "Welcome!"

    def get(self):
        self.render("index.html", title=self.title)
Run Code Online (Sandbox Code Playgroud)

我把代码简化为上面的代码,我很困惑为什么会产生这个错误.我一定做错了什么,但我不知道是什么(3个论点通过了......呃?)

注意:该title变量仅仅是<title>{{ title }}</title> …

python tornado

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

为什么我的 mysql.sock 文件只有在重新启动后才出现?

我每次都需要安装 DMG MySQL 启动包,然后重新启动计算机,以便 mysql.sock 文件出现在我的/tmp/文件夹中。否则,我无法找到该文件,并且无论出于何种目的,它都不可用。

注意:我运行的是 Lion 10.7.5,我使用的是 MySQL5.6.10(64 位),如果这有什么区别的话。

如何解决这个问题,使 mysql.sock 文件永久保留在该文件夹中?

谢谢。

mysql mysql.sock

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

如何为变量分配模块名称?

我想动态地让用户选择他/她想要使用的数据体.为此,在用户识别出他们选择的"语料库"之后,我必须导入适当的语料库.(我在Python 2.7.3上运行)

corpora_ls = ["gutenberg","inaugural","movie_reviews","state_union"]
import_validation = False

while not import_validation:
    print "Corpora Options: \"gutenberg\", \"inaugural\", \"movie_reviews\", \"state_union\"."
    import_option = str(raw_input("What corpus would you like to import? "))

    if import_option in corpora_ls:
        import_validation = True

        if import_option == "gutenberg":
            fname = "gutenberg"
            from nltk.corpus import gutenberg as DATA
        elif import_option == "inaugural":
            fname = "inaugural"
            from nltk.corpus import inaugural as DATA
        elif import_option == "movie_reviews":
            fname = "movie_reviews"
            from nltk.corpus import movie_reviews as DATA
        elif import_option == "state_union":
            fname = …
Run Code Online (Sandbox Code Playgroud)

python import module python-2.7

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

@synthesize与使用自我

我是iOS的新手,并且已经从教程和我的教授那里学习.
.h我们的文件中:

@interface ViewController : UIViewController <UITextFieldDelegate>

@property (strong, nonatomic) IBOutlet UILabel *myResponse;
@property (strong, nonatomic) IBOutlet UITextField *myInput;

@end
Run Code Online (Sandbox Code Playgroud)

.m我们的文件中:

@sysnthesize myResponse
@synthesize myInput
Run Code Online (Sandbox Code Playgroud)

我的问题是:在.m文件中,添加@synthesize之后使用属性(如[myInput <do something here>]消除@synthesize和使用)之间有什么区别[self.myInput <do something here>].我在Xcode 5上运行,所以我知道我有自动合成功能,但两者之间是否有更微妙的区别?

我的教授使用了@synthesize我正在使用的教程和教程self.propertyName,因此我很好奇.

谢谢.

properties ios

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