小编toh*_*ter的帖子

什么是AngularJS指令?

我花了很多时间阅读AngularJS文档和几个教程,我对文档的无法接近感到非常惊讶.

我有一个简单的,可回答的问题,对于想要获取AngularJS的其他人也可能有用:

什么是AngularJS指令?

在某处应该有一个简单,精确的指令定义,但AngularJS网站提供了这些令人惊讶的无用定义:

在主页上:

指令是AngularJS中独特而强大的功能.指令允许您创建特定于您的应用程序的新HTML语法.

开发人员文档中:

指令是教授HTML新技巧的一种方式.在DOM编译期间,指令与HTML匹配并执行.这允许指令注册行为或转换DOM.

并且有一系列关于指令的讨论,具有讽刺意味的是,似乎假设观众已经了解它们是什么.

任何人都可以提供一个明确的参考,准确定义指令的解释:

  1. 它是什么(以jQuery的清晰定义为例)
  2. 它打算解决哪些实际问题和情况
  3. 它体现了什么样的设计模式,或者它如何适应AngularJS 声称的MVC/MVW任务.

javascript angularjs angular-directive

179
推荐指数
2
解决办法
5万
查看次数

检测多行TextInput中的发送/提交按钮

如果指定为多行输入,则React Native TextInput组件不支持该onSubmitEditing事件.

有没有办法检测用户在输入某些文本后何时按下输入/提交/发送(取决于指定的键盘布局)按钮?

react-native

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

使用ID而不是对象填充SQLAlchemy多对多关系

情况:

所以,我在SQLAlchemy中使用关联表有一个基本的多对多关系.
例如,一个人可以参加很多聚会,一个聚会可以有很多人作为嘉宾:

class Person(Base):
    __tablename__ = 'person'
    id      = Column(Integer, primary_key=True)
    name    = db.Column(db.String(50))


class SexyParty(Base):
    __tablename__ = 'sexy_party'
    id      = Column(Integer, primary_key=True)
    guests  = relationship('Person', secondary='guest_association',
                        lazy='dynamic', backref='parties')

guest_association = Table(
    'guest_association',
    Column('user_id',       Integer(), ForeignKey('person.id')),
    Column('sexyparty.id',  Integer(), ForeignKey('sexyparty.id'))
)
Run Code Online (Sandbox Code Playgroud)

通常,如果我想在聚会上添加一个客人列表,我会做这样的事情:

my_guests = [prince, olivia, brittany, me]
my_party.guests = guests
db.session.commit()
Run Code Online (Sandbox Code Playgroud)

......王子,奥利维亚<Person>和布列塔尼都是实例,my_party就是一个<SexyParty>例子.

我的问题:

我想使用人员ID而不是实例将访客添加到聚会中.例如:

guest_ids = [1, 2, 3, 5]
my_party.guests = guest_ids  # <-- This fails, because guest_ids
                             # are not …
Run Code Online (Sandbox Code Playgroud)

python sql many-to-many sqlalchemy flask-sqlalchemy

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

在selenium webdriver.PhantomJS上设置超时

情况

我有一个简单的python脚本来获取给定URL的HTML源:

    browser = webdriver.PhantomJS()
    browser.get(url)
    content = browser.page_source
Run Code Online (Sandbox Code Playgroud)

有时,该网址指向具有缓慢加载的外部资源的页面(例如视频文件或非常慢的广告内容).

在完成.get(url)请求之前,Webdriver将一直等到加载这些资源.

注意:由于无关紧要的原因,我需要使用PhantomJS而不是requests或者urllib2


这个问题

我想在PhantomJS资源加载上设置超时,这样如果资源加载时间过长,浏览器就会认为它不存在或者其他什么.

这将允许我.pagesource根据浏览器加载的内容执行后续查询.

webdriver.PhantomJS上的文档很薄,我没有在SO上找到类似的问题.

提前致谢!

python selenium phantomjs selenium-webdriver

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

如何在Flask send_file()或send_from_directory()之后运行代码

我有一个基于Flask的网站,用户可以下载一些PDF文件.

这很容易使用Flask send_file()send_from_directory().

例如:

@app.route('/downloadreport')
def download_report():
    return send_from_directory(
        '/reports', 
        'my_report.pdf', 
        as_attachment=True)
Run Code Online (Sandbox Code Playgroud)

我想在下载完成后执行一些逻辑(让我们称之为after_download()).

我试过使用@after_this_request钩子.但它看起来像是send_file()异步运行,因此@after_this_request可能会在下载文件之前触发.

  • 例如,如果文件非常大,下载可能需要一段时间,因此@after_this_request在下载文件时似乎会触发.
  • 它从文档中看起来像send_file()使用WSGI的文件包装器来实现下载......也许这就是为什么它以异步方式运行?

有没有一种方法来调用after_download(),这样它保证后运行send_file()完成的文件发送到用户?

python download werkzeug flask

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

如何在flask-admin中引用ModelView

获取烧瓶管理员的URL的正确方法是ModelView什么?

这是一个非常简单的例子:

my_admin_view.py

from flask.ext.admin.contrib.sqla import ModelView
from common.flask_app import app
from models import db, User, Role

admin = Admin(app, name="Boost Admin")

admin.add_view(ModelView(User,  db.session, category="model"))
admin.add_view(ModelView(Role,  db.session, category="model"))
Run Code Online (Sandbox Code Playgroud)

my_admin_template.html

...
<p>Check out my user admin link:</p>

<a href="{{ url_for('modelview.user') }}">User view link</a>
{#                   ______________ 
                     what argument to pass in here??      #}
...
Run Code Online (Sandbox Code Playgroud)

传递给url_for(...)谁的正确论据是什么?

我试过modelview.user,my_admin_view.modelview.user等等.似乎没有一个正确解决,我想避免硬编码链接.

谢谢!

python flask flask-admin

6
推荐指数
2
解决办法
5592
查看次数

使用Python进行简单的远程过程监控

我想编写一个python脚本来对linux服务器上运行的远程进程执行一些非常简单的"无代理"监视.

它将在伪代码中执行以下任务:

for each remoteIPAddress in listOfIPAddresses:
    log into server@remoteIPAddress via ssh
    execute the equivalent of a 'ps -ef' command
    grep the result to make sure a particular process (by name) is still running
Run Code Online (Sandbox Code Playgroud)

一种方法是在子进程中使用python调用shell脚本并解析它们的输出.这似乎效率很低.有没有更好的方法通过python库来做到这一点?

通过这里和其他地方的研究我能找到的是:

  • psutil - 看起来它没有进行远程监控,因此我必须在远程计算机上运行代理以通过RPC报告统计信息.
  • pymeter - 我必须编写自己的插件来监控特定的远程服务.
  • stackoverflow#4546492 - 一些有用的链接,但海报正在寻找一个不同的解决方案.

谢谢,请放轻松我,这是我的第一个问题:-)

python linux monitoring

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

在身份映射之外强制执行 sqlalchemy ORM get()

背景

get()方法在 SQLAlchemy 的 ORM 中很特殊,因为它在向数据库发出 SQL 查询之前尝试从恒等映射中返回对象(请参阅文档

这对于性能来说很有好处,但可能会给分布式应用程序带来问题,因为对象可能已被另一个进程修改,因此本地进程无法知道该对象是脏的,并且在以下情况下将继续从身份映射中检索过时的对象:get()叫做。


问题

如何强制get()忽略身份映射并每次都向数据库发出调用?


例子

  • Company在 ORM 中定义了一个对象。
  • 我有一个每秒price_updater()更新stock_price所有对象属性的过程。Company
  • 我有一个buy_and_sell_stock()偶尔买卖股票的流程。
    • 现在,在这个过程中,我可能已经加载了一个microsoft = Company.query.get(123)对象。
    • 几分钟后,我可能会再次发出Company.query.get(123). 从那时起,股价发生了变化,但我的buy_and_sell_stock()进程不知道这种变化,因为它发生在另一个进程中。
    • 因此,调用会从会话的身份映射中get(123)返回过时的版本,这是一个问题。Company

我已经对 SO(在 [sqlalchemy] 标签下)进行了搜索,并阅读了 SQLAlchemy 文档以尝试找出如何做到这一点,但还没有找到方法。

python orm sqlalchemy

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

模拟文件丢弃并上传到dropzone.js

我正在为包含dropzone.js元素的网页编写测试工具,让我们调用它myDropzone,由$('#my-dropzone')元素表示.

题:

我可以使用javascript来模拟将可上传的文件放到dropzone上吗?

我想(但我不确定)这可能会带来类似的东西:

  1. 然后在javascript中创建一个类文件对象
  2. 触发放置事件myDropzone.

步骤#2很简单,但步骤#1涉及创建一个类似文件的对象(包含真正的数据流?),一旦删除它就可以实际上传.

我试图创建一个空文件,如这个,然后使用myDropzone.addFile(...),但因为没有数据有效载荷不会导致上载的文件.

谢谢!

javascript file-upload dropzone.js

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