我最近听说过SQL是一种糟糕的语言,似乎太阳下的每个框架都预先打包了一个数据库抽象层.
根据我的经验,SQL通常是管理数据输入和输出的更简单,更通用,更方便程序的方式.我使用的每个抽象层似乎都是一种显着有限的方法,没有真正的好处.
是什么让SQL如此糟糕,为什么数据库抽象层有价值?
我正在使用netrw来阅读Vim中的目录列表,我想在我的netrw标签中显示行号(所以我可以使用:24来更快地浏览目录列表).我在我的vimrc中使用"set number"来编辑文件时启用行号,但这不会在netrw中显示行号.
在netrw中,如果我输入命令":set number",则显示行号,但是一旦我更改目录,行号就会消失.
有没有我可以放入.vimrc的配置选项,它会使行号显示在netrw窗口中?
我在我的应用程序中设置了一个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?
我有一个匹配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不再是正确的比较,因为我没有使用内置的"%"通配符,而是使用{{.*}}.任何想法如何实现这一目标?
我非常喜欢在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 ++以使其工作的方法?
我通过mod_wsgi在Apache中运行Django.我相信Django正在缓存我的服务器端页面,这导致一些功能无法正常工作.
我有一个倒数计时器,通过获取当前服务器时间,确定剩余倒计时时间,并将该数字输出到HTML模板.然后,javascript倒计时器接管并运行用户的倒计时.
当用户刷新页面或使用倒数计时器导航到不同的页面时,会出现问题.计时器似乎偶尔跳到不同的时间,通常在每次刷新时反复回到同一时间.
使用HTTPFox,页面没有从我的浏览器缓存加载,所以它看起来像Django或Apache正在缓存页面.有没有办法禁用此功能?我不会有足够的流量来担心缓存脚本输出.或者我为什么会这样做完全错了?
[编辑]从下面的帖子看,在Django中看起来禁用了缓存,这意味着它必须在其他地方发生,也许在Apache中?
[编辑]我对正在发生的事情有一个更全面的描述:对于服务器的前7个(或左右)请求,页面由脚本呈现并返回,尽管这7个页面中的每个页面似乎都被高速缓存,因为它出现以后.在第8个请求中,服务器提供第一页.在第9个请求中,它提供第二页,依此类推.这将一直持续到我重新启动apache,然后重新开始进程.
[编辑]我已经将mod_wsgi配置为一次只运行一个进程,这会导致计时器在每种情况下重置为相同的值.有趣的是,我的页面上有另一个组件,在每个请求上显示一个随机图像,使用顺序('?'),并且每次都刷新不同的图像,这表明缓存发生在Django而不是Apache中.
[编辑]根据之前的编辑,我回过头来查看了相关的views.py文件,发现倒计时开始变量是在视图函数之外的模块中全局设置的.在视图函数中移动该设置解决了问题.所以事实证明它毕竟不是一个缓存问题.感谢大家对此的帮助.
我正在使用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删除外键?如何删除外键,然后删除列?
可能重复:
在PHP中生成安全随机数
我们需要生成一个加密随机字符串,用作身份验证令牌,该令牌将绑定到数据库中的会话数据.我们使用的是PHP,它似乎没有内置合适的随机数生成器.我们如何使用php生成N长度的加密安全随机字符串?
另请注意,由于我们的应用程序的性质,shell_exec不在桌面上.
我最近一直在为我的大多数网络项目使用Python,并且非常喜欢Pylons MVC框架.我喜欢令人难以置信的透明度(缺乏魔力),他们选择的内置组件(sqlalchemy,formencode,路线),以及轻松改变的能力(使用不同的ORM或模板引擎).
展望未来,由于我公司的限制,我将尝试使用Ruby而不是Python.我想知道具有两者经验的人是否对与Pylons相当的Ruby框架有任何建议.
Python是Django,因为Ruby是Rails
Python是Pylons,就像Ruby一样?
我正在构建一个基于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)
我不应该使用测试客户端来执行此操作吗?(例如,性能)是否有更好的工具更适合这一特定目的?
我有一个正则表达式来匹配我的字符串中{和}之间的任何内容.
"/{.*}/"
不可能更简单.当我有一个包含多个匹配的单行时会出现问题.所以,如果我有这样的一行:
这是我的{string},它没有{work}正确
正则表达式将匹配
{string},它没有{work}
而不是
{串}
如何让它与第一个结果匹配?
我正在使用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将这些函数合并到查询中?
我正在构建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有什么问题?
python ×6
mysql ×3
php ×3
sqlalchemy ×3
django ×2
frameworks ×2
orm ×2
regex ×2
apache ×1
api ×1
caching ×1
comments ×1
cryptography ×1
css ×1
foreign-keys ×1
html ×1
javascript ×1
jquery ×1
mod-wsgi ×1
nested ×1
netrw ×1
notepad++ ×1
phpdoc ×1
preg-replace ×1
pylons ×1
random ×1
replace ×1
ruby ×1
sql ×1
string ×1
vim ×1