如果我有这个字符串:
hexstring = '001122334455'
Run Code Online (Sandbox Code Playgroud)
如何将其拆分为一个列表,结果如下:
hexlist = ['00','11','22','33','44','55']
我想不出一个好的,pythonic方式来做到这一点:/
我正在调查Pylons并且想知道,我应该使用Paste作为网络服务器还是我可以使用Apache?
使用粘贴有什么好处?
你会建议不要使用Apache吗?
我该如何托管这些网站?
我有一个非常大的表单,包括单选按钮/复选框以及文本输入.由于复选框的性质,如果他们发布表单而不检查它,它不会在POST数据中发送.这使我对如何处理它有点困惑.
我最初使用标准的"每个字段列"启动了我的数据库.例如:
id | userid | firstname | lastname | middlename | phonenumber | mobilenumber |
Run Code Online (Sandbox Code Playgroud)
当我最终拥有超过30列时,这很快就改变了.这种形式是巨大的.我已经决定使用'EAV架构'给我的表只有4行.它现在看起来像这样:
id | userid | name | value
---+--------+-----------+------
1 | 1 | firstname | steve
---+--------+-----------+------
2 | 1 | lastname | blah
Run Code Online (Sandbox Code Playgroud)
这似乎是一种更好的方法.
所以我的问题是,当我不完全确定它的内容时,我应该如何处理数据库呢?如果我有20个复选框(每个都有自己的名字),我应该手动检查每个复选框是否已提交,如果没有,则设置'null'值?
我是否应该从表中清空用户ID的所有行并将其替换为所有新数据?
这样做的有效方法是什么?
假设我有一个类似于以下的数据库:
Table: People
id | name | age
---+------+-----
1 | dave | 78
Table: Likes
id | userid | like
---+--------+-------
1 | 1 | apples
---+--------+-------
2 | 1 | oranges
---+--------+-------
3 | 1 | women
Run Code Online (Sandbox Code Playgroud)
处理更新daves
数据的最佳方法是什么?目前,我执行以下操作:
Update his age
UPDATE People SET age = 79 WHERE id = 1;
Update his likes
DELETE FROM Likes WHERE userid = 1;
INSERT INTO LIKES (userid, like) VALUES (1, 'new like');
INSERT INTO LIKES (userid, like) VALUES …
Run Code Online (Sandbox Code Playgroud) var $arrow = $(this);
var $sibling = $arrow.siblings('span.arrow');
var $score = $arrow.siblings('span.score');
var vote = $arrow.hasClass('up') ? 'up' : 'down';
var alreadyVoted = $sibling.hasClass('voted');
if (!USER_LOGGED_IN)
{
alert('You must be logged into vote');
}
else if (!$arrow.hasClass('voted'))
{
if (alreadyVoted)
$sibling.removeClass('voted');
$arrow.addClass('voted');
$score[0].innerHTML = parseInt($score[0].innerHTML) + ((vote == 'up') ? 1 : -1);
}
Run Code Online (Sandbox Code Playgroud)
我有一个upvote和downvote按钮.这些按钮旁边会显示"当前得分",我希望在投票时增加/减少.
例如,如果他们加载页面并看到分数是200
.当他们投票时,分数将变为201
.当他们downvote时,分数需要改为199
.为什么?因为如果他们在上升后投票(改变他们的想法),那么投票需要从原来的得分开始.不是他们通过upvotting创建的新分数.
基本上,如果他们赞成然后投票,那么目前的分数会回到原来的分数.他们的投票不是投票.
我在制作这项工作时遇到了麻烦,所以他们投了票......
我在Arch Linux上运行Python2.7.我通过Pacman安装了OpenCV.
我正在使用的Python代码是:
import cv
capture = cv.CaptureFromCAM(0)
Run Code Online (Sandbox Code Playgroud)
非常简单.我现在要做的就是让Python访问我的网络摄像头.但上面的代码输出:
[user@host python]$ python2.7 webcam.py
VIDIOC_QUERYMENU: Invalid argument
VIDIOC_QUERYMENU: Invalid argument
VIDIOC_QUERYMENU: Invalid argument
Run Code Online (Sandbox Code Playgroud)
我的网络摄像头适用于Cheese(linux网络摄像头程序).因此,可以推测,不应该有任何驱动程序/模块问题......
有任何想法吗?
我正在尝试让我的程序使用Pika,在失败时不断重试连接到RabbitMQ.从我所见过的鼠兔文档的,还有可以用来accompish这个SimpleReconnectionStrategy类,但它似乎并没有被工作得很好.
strategy = pika.SimpleReconnectionStrategy()
parameters = pika.ConnectionParameters(server)
self.connection = pika.AsyncoreConnection(parameters, True, strategy)
self.channel = self.connection.channel()
Run Code Online (Sandbox Code Playgroud)
连接应该wait_for_open
并设置重新连接策略.
但是,当我运行它时,我会抛出以下错误:
error: uncaptured python exception, closing channel <pika.asyncore_adapter.RabbitDispatcher at 0xb6ba040c> (<class 'socket.error'>:[Errno 111] Connection refused [/usr/lib/python2.7/asyncore.py|read|79] [/usr/lib/python2.7/asyncore.py|handle_read_event|435] [/usr/lib/python2.7/asyncore.py|handle_connect_event|443])
error: uncaptured python exception, closing channel <pika.asyncore_adapter.RabbitDispatcher at 0xb6ba060c> (<class 'socket.error'>:[Errno 111] Connection refused [/usr/lib/python2.7/asyncore.py|read|79] [/usr/lib/python2.7/asyncore.py|handle_read_event|435] [/usr/lib/python2.7/asyncore.py|handle_connect_event|443])
Run Code Online (Sandbox Code Playgroud)
当Pika试图连接时,这些错误不断被抛出.如果我在客户端运行时启动RabbitMQ服务器,它将连接.我只是不喜欢看到这些错误......它们是正常的吗?我做错了吗?
这是我需要SQLAlchemy通过其ORM生成的SQL.
SELECT
*
FROM
notes
WHERE
notes.student_id == {student_id}
OR
notes.student_id IN (
SELECT
*
FROM
peers
WHERE
peers.student_id == {student_id}
AND
peers.date_peer_saved >= notes.date_note_saved
)
Run Code Online (Sandbox Code Playgroud)
SQL未经测试.我只是写它来演示我需要SQLAlchemy做什么.
基本上,登录的学生应该看到已保存的列表notes
.notes
然而,唯一的学生应该看到的是那些由他们自己发布的或者由他们的同伴发布的那些 - 但只有那些同意他们在说明被保存之后'结识'.
这样,学生在成为同伴之前就不会看到其他学生发布的笔记.
但是,我无法在SQLAlchemy的ORM中运行它.有帮助吗?
我正在尝试编译Apple设备将拥有的所有MAC地址的列表.oui.txt
告诉我Apple已经分配了77个MAC范围.这些范围的形式为:
00:00:00
00:11:11
etc...
Run Code Online (Sandbox Code Playgroud)
这留给我追加的最后三个HEX数字.那是16^6
.共有1291845632个Apple MAC地址.
我遇到的问题是编写一个程序来创建这些MAC地址的列表.这是我目前的代码:
import re
apple_mac_range = []
apple_macs = []
# Parse the HTML of http://standards.ieee.org/cgi-bin/ouisearch to get the MACs
with open('apple mac list', 'r') as f:
for line in f.readlines():
match = re.search(r'[\w\d]{2}-[\w\d]{2}-[\w\d]{2}', line)
if match:
apple_mac_range.append(match.group().split('-'))
for mac in apple_mac_range:
for i in range(1, 1291845633):
print i
Run Code Online (Sandbox Code Playgroud)
这给了我一个MemoryError
......我怎样才能优化它?
我最近一直在玩金字塔,而且从Pylons背景来看,我一直专注于URL路由而不是遍历.
我一直在寻找使用处理程序将"控制器"特定功能组合到一个类中.而不是让view.py被一堆函数污染.
配置:
config.add_handler('view_page', '/page/view/{id}', handler=Page, action=view_page)
Run Code Online (Sandbox Code Playgroud)
处理器:
from pyramid.response import Response
from pyramid.view import action
class Page(object):
def __init__(self, request):
self.request = request
def view_page(self):
return {'id': id}
Run Code Online (Sandbox Code Playgroud)
我今天早些时候正在阅读有关在add_handler()调用中隐式声明操作的文档,这可能是错误的......但是,我的主要问题是访问id
view_callable中的内容
我怎么得'id'?
python ×7
database ×2
pylons ×2
sql ×2
amqp ×1
forms ×1
html ×1
javascript ×1
jquery ×1
linux ×1
memory ×1
one-to-many ×1
opencv ×1
optimization ×1
pyramid ×1
rabbitmq ×1
sqlalchemy ×1
string ×1
subquery ×1
vote ×1
web-services ×1
webcam ×1