小编Tra*_*vis的帖子

为什么不爱SQL?

我最近听说过SQL是一种糟糕的语言,似乎太阳下的每个框架都预先打包了一个数据库抽象层.

根据我的经验,SQL通常是管理数据输入和输出的更简单,更通用,更方便程序的方式.我使用的每个抽象层似乎都是一种显着有限的方法,没有真正的好处.

是什么让SQL如此糟糕,为什么数据库抽象层有价值?

sql frameworks

114
推荐指数
13
解决办法
1万
查看次数

如何配置.vimrc以便在Vim中以netrw显示行号?

我正在使用netrw来阅读Vim中的目录列表,我想在我的netrw标签中显示行号(所以我可以使用:24来更快地浏览目录列表).我在我的vimrc中使用"set number"来编辑文件时启用行号,但这不会在netrw中显示行号.

在netrw中,如果我输入命令":set number",则显示行号,但是一旦我更改目录,行号就会消失.

有没有我可以放入.vimrc的配置选项,它会使行号显示在netrw窗口中?

vim netrw

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

SQLAlchemy单表上的多对多关系

我在我的应用程序中设置了一个SQLAlchemy模型,它应该模仿Twitter上"关注者"的功能,即.用户与彼此之间存在多对多关系(关注者和关注者).这些表的结构如下(sa是sqlalchemy模块):

t_users = sa.Table("users", meta.metadata,
    sa.Column("id", sa.types.Integer, primary_key=True),
    sa.Column("email", sa.types.String(320), unique=True, nullable=False),
    ...etc...
    )

t_follows = sa.Table("follows", meta.metadata,
    sa.Column("id", sa.types.Integer, primary_key=True),
    sa.Column("follower_id", sa.types.Integer, sa.ForeignKey('users.id'), nullable=False),
    sa.Column("followee_id", sa.types.Integer, sa.ForeignKey('users.id'), nullable=False)
    )
Run Code Online (Sandbox Code Playgroud)

我碰到了一下但是一个路障,试图用orm.mapper建立这种关系,因为辅助表是指回同一个主表在两个方向.我如何将这种关系映射到ORM?

python orm sqlalchemy

13
推荐指数
2
解决办法
5614
查看次数

有没有相当于PHP的preg_replace的MySQL?

我有一个匹配MySQL中的字段,我认为我可以使用正则表达式,但似乎MySQL没有我需要的功能.这是场景:

我在PHP中有一个名为$ url的变量.假设此变量设置为字符串"/ article/my-article/page/2".我还有一个MySQL表格,我想从中提取内容.但是,存储在我的表中的URL包括通配符.

以前,我进行了此设置,以便存储在表中的值如下所示:"/ article /%/ page /%".

使用该配置,我可以运行:

SELECT * FROM urls WHERE '$url' LIKE url
Run Code Online (Sandbox Code Playgroud)

这将匹配,这是所需的功能.

我现在要做的是允许更高级的通配符,这样我的MySQL数据可以是"/ article/{{slug}}/page/{{而不是"/ article /%/ page /%". page_no}}".

我想使用相同的$ url输入创建一个匹配此数据的SQL查询.LIKE不再是正确的比较,因为我没有使用内置的"%"通配符,而是使用{{.*}}.任何想法如何实现这一目标?

php regex mysql replace preg-replace

12
推荐指数
3
解决办法
4万
查看次数

Notepad ++中的PHPDoc注释?

我非常喜欢在Notepad ++中工作,但我还没有找到一个自动执行PHPDoc样式注释的插件.其他PHP IDE(Eclipse,NetBeans,ZendStudio)包含此功能,它非常方便.

基本上我想要的是,如果在函数定义或类定义上面的行我键入:

/**
Run Code Online (Sandbox Code Playgroud)

它会自动填充PHPdoc格式(对于函数,类似于以下内容):

/**  
 * 
 * @param $first_argument
 * @param $second_argument
 * @return
 */
Run Code Online (Sandbox Code Playgroud)

然后当我在注释中输入其他行时,它会用星号开始每一行.

是否有一个NP ++插件可以实现这一点,或者是一种调整NP ++以使其工作的方法?

php comments phpdoc notepad++

10
推荐指数
2
解决办法
9024
查看次数

如何禁用Django/mod_WSGI页面缓存

我通过mod_wsgi在Apache中运行Django.我相信Django正在缓存我的服务器端页面,这导致一些功能无法正常工作.

我有一个倒数计时器,通过获取当前服务器时间,确定剩余倒计时时间,并将该数字输出到HTML模板.然后,javascript倒计时器接管并运行用户的倒计时.

当用户刷新页面或使用倒数计时器导航到不同的页面时,会出现问题.计时器似乎偶尔跳到不同的时间,通常在每次刷新时反复回到同一时间.

使用HTTPFox,页面没有从我的浏览器缓存加载,所以它看起来像Django或Apache正在缓存页面.有没有办法禁用此功能?我不会有足够的流量来担心缓存脚本输出.或者我为什么会这样做完全错了?

[编辑]从下面的帖子看,在Django中看起来禁用了缓存,这意味着它必须在其他地方发生,也许在Apache中?

[编辑]我对正在发生的事情有一个更全面的描述:对于服务器的前7个(或左右)请求,页面由脚本呈现并返回,尽管这7个页面中的每个页面似乎都被高速缓存,因为它出现以后.在第8个请求中,服务器提供第一页.在第9个请求中,它提供第二页,依此类推.这将一直持续到我重新启动apache,然后重新开始进程.

[编辑]我已经将mod_wsgi配置为一次只运行一个进程,这会导致计时器在每种情况下重置为相同的值.有趣的是,我的页面上有另一个组件,在每个请求上显示一个随机图像,使用顺序('?'),并且每次都刷新不同的图像,这表明缓存发生在Django而不是Apache中.

[编辑]根据之前的编辑,我回过头来查看了相关的views.py文件,发现倒计时开始变量是在视图函数之外的模块中全局设置的.在视图函数中移动该设置解决了问题.所以事实证明它毕竟不是一个缓存问题.感谢大家对此的帮助.

python apache django caching mod-wsgi

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

如何在SQLAlchemy中删除外键约束?

我正在使用SQLAlchemy Migrate来跟踪数据库更改,我遇到了删除外键的问题.我有两个表,t_new是一个新表,t_exists是一个现有的表.我需要添加t_new,然后向t_exists添加一个外键.然后我需要能够扭转操作(这是我遇到麻烦的地方).

t_new = sa.Table("new", meta.metadata,
    sa.Column("new_id", sa.types.Integer, primary_key=True)
)
t_exists = sa.Table("exists", meta.metadata,
    sa.Column("exists_id", sa.types.Integer, primary_key=True),
    sa.Column(
        "new_id", 
        sa.types.Integer,
        sa.ForeignKey("new.new_id", onupdate="CASCADE", ondelete="CASCADE"),
        nullable=False
    )
)
Run Code Online (Sandbox Code Playgroud)

这很好用:

t_new.create()
t_exists.c.new_id.create()
Run Code Online (Sandbox Code Playgroud)

但这不是:

t_exists.c.new_id.drop()
t_new.drop()
Run Code Online (Sandbox Code Playgroud)

尝试删除外键列会出现错误:1025,"将'.\ my_db_name \#sql-1b0_2e6'重命名为'.\ my_db_name\exists'(错误号:150)"时出错"

如果我使用原始SQL执行此操作,我可以手动删除外键然后删除列,但我无法弄清楚如何使用SQLAlchemy删除外键?如何删除外键,然后删除列?

python mysql sqlalchemy foreign-keys mysql-error-1025

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

如何使用PHP生成加密安全随机数?

可能重复:
在PHP中生成安全随机数

我们需要生成一个加密随机字符串,用作身份验证令牌,该令牌将绑定到数据库中的会话数据.我们使用的是PHP,它似乎没有内置合适的随机数生成器.我们如何使用php生成N长度的加密安全随机字符串?

另请注意,由于我们的应用程序的性质,shell_exec不在桌面上.

php random cryptography

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

框架类似于Ruby的Pylons

我最近一直在为我的大多数网络项目使用Python,并且非常喜欢Pylons MVC框架.我喜欢令人难以置信的透明度(缺乏魔力),他们选择的内置组件(sqlalchemy,formencode,路线),以及轻松改变的能力(使用不同的ORM或模板引擎).

展望未来,由于我公司的限制,我将尝试使用Ruby而不是Python.我想知道具有两者经验的人是否对与Pylons相当的Ruby框架有任何建议.

Python是Django,因为Ruby是Rails

Python是Pylons,就像Ruby一样?

ruby python model-view-controller pylons frameworks

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

Django测试客户端可以用于生产中的API调用吗?

我正在构建一个基于Piston构建的API的Django应用程序.为了尽可能保持DRY和API的完整,我希望我的内部应用程序可以调用API而不是模型(代理视图控制器的种类)https://github.com/raganwald /homoiconic/blob/master/2010/10/vc_without_m.md但现在只安装一个django).所以基本设置是:

Model -> API -> Application -> User Client
Run Code Online (Sandbox Code Playgroud)

我可以重载一些核心Piston类来为应用程序创建一个内部客户端接口,但我想知道我是否可以使用Django Test Client来完成同样的事情.所以要创建一篇文章,而不是调用我会运行的模型:

from django.test.client import Client
c = Client()
article = c.post('/api/articles', {
  'title' : 'My Title',
  'content' : 'My Content'
})
Run Code Online (Sandbox Code Playgroud)

我不应该使用测试客户端来执行此操作吗?(例如,性能)是否有更好的工具更适合这一特定目的?

python api django django-testing

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

如何使正则表达式匹配内在可能的结果

我有一个正则表达式来匹配我的字符串中{和}之间的任何内容.

"/{.*}/"

不可能更简单.当我有一个包含多个匹配的单行时会出现问题.所以,如果我有这样的一行:

这是我的{string},它没有{work}正确

正则表达式将匹配

{string},它没有{work}

而不是

{串}

如何让它与第一个结果匹配?

regex string nested

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

如何在SQLAlchemy中使用数学方程作为过滤器

我正在使用SQLAlchemy ORM在我的应用程序中构建MySQL查询,并且完全能够为查询添加基本过滤器,如下所示:

query = meta.Session.query(User).filter(User.user_id==1)
Run Code Online (Sandbox Code Playgroud)

这给了我一些与此基本相同的东西:

SELECT * FROM users WHERE user_id = 1
Run Code Online (Sandbox Code Playgroud)

我的问题是如何将一些基本的MySQL数学函数集成到我的查询中.所以,比方说,我想让用户接近某个纬度和经度.所以我需要生成这个SQL($ mylatitude和$ mylongitude是我正在比较的静态纬度和经度):

SELECT * FROM users 
WHERE SQRT(POW(69.1 * (latitude - $mylatitude),2) + POW(53.0 * (longitude - $mylongitude),2)) < 5
Run Code Online (Sandbox Code Playgroud)

有没有办法可以使用SQLAlchemy ORM将这些函数合并到查询中?

python mysql orm sqlalchemy

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

添加到DOM时,为什么Chrome扩展程序图像显示为已损坏?

我正在构建Chrome扩展程序,并尝试通过内容脚本向DOM添加带有背景图像的div.CSS加载正确,图像URL似乎正确通过开发人员工具检查器查看它.

$('.close-button').css('background', 'url('+chrome.extension.getURL('img/btn_close.png')+')');
Run Code Online (Sandbox Code Playgroud)

该URL显示在检查器中

chrome-extension://fdghianmcdbcgihapgdbjkdoaaocmoco/img/btn_close.png
Run Code Online (Sandbox Code Playgroud)

但图像不会在后台加载.如果我做同样的事情,但加载图像作为img标签的src,图像在浏览器中明显显示为已损坏.

但是,当我将此URL粘贴到浏览器URL栏并加载它时,它显示正常.把它加载到DOM有什么问题?

html javascript css jquery google-chrome-extension

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