我有一个记录温度的树莓派,并将它们存储在我网站上的MySQL数据库中.我经常玩脚本,所以我正在ctrl+c运行脚本并重新执行它.我想close()在数据库连接上正确发布.当在python中退出脚本时,如何运行一行代码?
import MySQLdb
con = MySQLdb.connect(...)
cursor = con.cursor()
# ...
#if script closes:
#con.close()
Run Code Online (Sandbox Code Playgroud) 我收到以下错误:
HTTP Status 500 - Request processing failed; nested exception is
org.springframework.jdbc.BadSqlGrammarException: StatementCallback; bad SQL grammar
[SELECT id, name FROM track WHERE category_id = 1 ORDER BY name]; nested exception is
java.sql.SQLException: Column 'category_id' not found.
Run Code Online (Sandbox Code Playgroud)
但是当我将错误中列出的非常选择的语句复制并粘贴到mysql shell中时,我得到的结果是预期的,因为表中track有列category_id.
这个错误可能是什么原因?
这是表create语句track:
CREATE TABLE track (
id SERIAL
,name VARCHAR(50)
,category_id BIGINT UNSIGNED -- This references a serial (bigint unsigned)
,CONSTRAINT track_id_pk PRIMARY KEY (id)
,CONSTRAINT track_category_id_fk FOREIGN KEY
(category_id) REFERENCES category (id)
);
Run Code Online (Sandbox Code Playgroud)
以下是我的dao类中有关该track …
init.d我正在尝试第一次编写脚本来启动supervisord进程。Supervisor 是一个过程控制器/管理器,如runit、upstart、 或systemd。我希望它在系统重新启动时自动启动,以便它可以启动我的应用程序。
我使用这个tldp 教程作为编写脚本的基础init.d。它工作正常,但我不明白应该如何修改文件中的这一行:
# chkconfig: 2345 95 05
Run Code Online (Sandbox Code Playgroud)
本行教程中的注释指出:
尽管这些是注释,但它们由 chkconfig 命令使用并且必须存在。该特定行定义在运行级别 2、3、4 和 5 上,该子系统将以优先级 95(最后一个)激活,并以优先级 05(第一个)停用。
这个RHEL 文档解释了各种运行级别:
0 - Halt
1 - Single-user text mode
2 - Not used (user-definable_
3 - Full multi-user text mode
4 - Not used (user-definable)
5 - Full multi-user grapical mode
6 - Reboot
Run Code Online (Sandbox Code Playgroud)
从这些选择中,我想我想在 上运行我的35,假设 1 仅适用于系统管理员。
有一些示例 Supervisordinit.d脚本,例如 …
该文档指出,定义路线的首选方式是在结尾加上斜杠:
@app.route('/foo/', methods=['GET'])
def get_foo():
pass
Run Code Online (Sandbox Code Playgroud)
这样,客户可以GET /foo或GET /foo/获得相同的结果。
但是,POSTed方法没有相同的行为。
从烧瓶进口烧瓶
app = Flask(__ name__)
@ app.route( '/富/',方法= [ 'POST'])
def post_foo():
返回“栏”
app.run(端口= 5000)
在这里,如果你POST /foo,它会失败,method not allowed如果你没有在调试模式下运行,或者如果你是在调试模式下,它会用以下通知失败:
一个请求被发送到这个URL(HTTP://本地主机:5000 / FOO),但重定向由路由系统自动发出“ HTTP://本地主机:5000 /富/&QUOT ;该URL与一个尾随限定。斜线所以瓶将自动重定向到与如果它没有一个访问的结尾的斜线的网址。请务必使直接发送您的POST请求到这个网址,因为我们不能让浏览器或HTTP客户端表单数据可靠或不带用户重定向相互作用
此外,您似乎甚至无法执行此操作:
@app.route('/foo', methods=['POST'])
@app.route('/foo/', methods=['POST'])
def post_foo():
return "bar"
Run Code Online (Sandbox Code Playgroud)
或这个:
@ app.route( '/富',方法= [ 'POST'])
DEF post_foo_no_slash():
返回重定向(url_for( 'post_foo'),代码= 302)
@ app.route( '/富/',方法= [ 'POST'])
def post_foo():
返回“栏”
有没有什么办法让POST工作在两个非拖尾和结尾的斜杠?
我有一个带有 CLOB 的表,其中存储了一个大的 JSON 有效负载。但是,我无法选择值大于 4000 字节的某些属性。
例如,以这样的 json 为例:
{
"foo": "some string smaller than 4k",
"bar": "some string larger than 4k"
}
Run Code Online (Sandbox Code Playgroud)
以下工作:
SELECT json_value(j, '$.foo' ERROR ON ERROR) FROM j;
Run Code Online (Sandbox Code Playgroud)
以下失败ORA-40478: output value too large (maximum:):
SELECT json_value(j, '$.bar' ERROR ON ERROR) FROM j;
Run Code Online (Sandbox Code Playgroud)
ORA-40478: 输出值太大(最大值:字符串)
原因:提供的 JavaScript 对象表示法 (JSON) 运算符生成的结果超出了 RETURN 子句中指定的最大长度。
行动:增加返回子句中数据类型的最大大小或在返回子句中使用CLOB或BLOB。
但是,使用该RETURNING子句也会失败,例如ORA-40444: JSON processing error:
SELECT json_value(j, '$.bar' RETURNING CLOB ERROR ON ERROR) …Run Code Online (Sandbox Code Playgroud) 我有一个包含proc的包,它将执行许多其他过程,如下所示:
CREATE PACKAGE BODY pkg IS
CREATE PROCEDURE do
IS
BEGIN
other_pkg.other_proc;
other_pkg2.other_proc2;
other_pkg3.other_proc3;
END;
END;
Run Code Online (Sandbox Code Playgroud)
有没有办法让程序并行而不是串行执行?
编辑:
这是DBMS_SCHEDULER在这个实例中使用的正确方法:
CREATE PACKAGE BODY pkg IS
CREATE PROCEDURE do
IS
BEGIN
DBMS_SCHEDULER.CREATE_JOB('job_other_pkg.other_proc', 'STORED_PROCEDURE', 'other_pkg.other_proc;');
DBMS_SCHEDULER.RUN_JOB('job_other_pkg.other_proc', FALSE);
-- ...
END;
END;
Run Code Online (Sandbox Code Playgroud) 在从Django应用程序(python)中搜索运行Java代码的选项后,我发现Py4J对我而言是最佳选择。我尝试了Jython,JPype和Python子进程,它们每个都有一定的局限性:
在Py4J网站上写道:
在性能方面,Py4J依赖于套接字,因此比以前的两个解决方案(Jython和JPype)都有更大的开销,但是如果性能对您的应用程序至关重要,那么从Python程序访问Java对象可能不是最好的主意。
在我的应用程序中性能至关重要,因为我正在使用机器学习框架Mahout。我的问题是:由于Py4J网关服务器,Mahout的运行速度也会变慢吗?否则,这意味着从Python函数调用Java方法的速度会变慢(在后者的情况下,Mahout的性能不会成为问题,我可以使用Py4J)。
我有一个带有书单的选择框。用户可以选择一本书,然后单击“提交”按钮以在单独的页面上查看章节。
但是,当用户更改选择框时,我希望部分页面刷新以显示用户在书上输入的过去笔记,并允许用户为该书写新笔记。我不希望在下一章与各章中复习和创建特定书籍的笔记,因为这会使其杂乱无章。
我在后端使用Python / Bottle,在前端使用它的SimpleTemplate引擎。
当前,当更改选择框时,ajax调用会收到一个Json字符串,其中包含书籍信息和所有注释。然后将此json字符串通过转换为json对象jQuery.parseJson()。
然后,我想做的就是遍历笔记并渲染具有多个单元格和行的表格。
我是否必须在jQuery / js(而不是bottle / template框架)中执行此操作?我假设我只希望部分刷新,而不是全部刷新。
我正在寻找一段代码,该代码可以通过jQuery / js从使用ajax检索的json对象中呈现具有可变行数的表。
<head>
<title>Book Notes Application - Subjects</title>
<script src="http://code.jquery.com/jquery-latest.min.js"
type="text/javascript"></script>
<script>
$(document).ready(function(){
$('#subject_id').change(function(){
var subject_id = $(this).val();
$.ajax({
url : "subject_ajax?subject_id=" + subject_id,
success : function(data) {
alert(data)
json = jQuery.parseJSON(data);
},
error : function() {
alert("Error");
}
});
})
})
</script>
</head>
<body>
<!-- CHOOSE SUBJECT -->
<FORM action="/books" id="choose_subject" name="choose_subject" method="POST">
Choose a Subject:
<select name="subject_id" id="subject_id">
% for subject in subjects: …Run Code Online (Sandbox Code Playgroud) from pyhive import hive
import thrift_sasl
connection = hive.Connection(host='myhost', port=10000, database='local')
#hangs here
from sqlalchemy import create_engine
engine = create_engine('hive://myhost:10000/local')
logs = Table('mytable', MetaData(bind=engine), autoload=True)
#also hangs here
Run Code Online (Sandbox Code Playgroud)
这两个片段都对我来说很重要。
点击 ctrl+c 将停止执行:
^CTraceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/apps/Python/lib/python2.7/site-packages/pyhive/hive.py", line 86, in __init__
self._transport.open()
File "thrift_sasl.py", line 74, in open
status, payload = self._recv_sasl_message()
File "thrift_sasl.py", line 92, in _recv_sasl_message
header = self._trans.readAll(5)
File "/apps/Python/lib/python2.7/site-packages/thrift/transport/TTransport.py", line 58, in readAll
chunk = self.read(sz - have) …Run Code Online (Sandbox Code Playgroud) 假设您确定要为您的应用程序使用 8 个消费者线程。
如果 Kafka 主题设置为具有 8 个分区和 16 个分区,处理过程会有什么差异吗?
在第一种情况下,每个线程被分配到具有两倍数据的单个分区,而在第二种情况下,每个线程被分配到两个分区,每个分区具有一半的数据。在我看来,这两种设置没有区别。