我很新闻,并试图自己建立一个博客,我遇到了SQLite操作错误的问题.我已经在Github和Stackoverflow上研究了类似的问题,但是在我发现的问题中没有出现典型的拼写错误或错误.如果有人能帮助我,那将是非常感激和非常好的,因为这个问题就像杀了我一样已经花了我两天,我觉得非常糟糕.
在代码中我已经定义了表名为"users_table"并在开头运行"db.create_all()"来创建表,但是每次提交时都会出现"没有这样的表user_table"的错误更新用户信息.
这是我测试SQLite操作的方法:
(under /project) python3 manage.py shell
>>> u = User(email='foo@bar.com', username='foobar', password='player')
>>> db.create_all()
>>> db.session.add(u)
>>> db.session.commit() # with following error message
Traceback (most recent call last):
File "C:\...\Python\Python36-32\lib\site-packages\sqlalchemy\engine\base.py", line 1182, in _execute_context
context)
File "C:\...\Python\Python36-32\lib\site-packages\sqlalchemy\engine\default.py", line 470, in do_execute
cursor.execute(statement, parameters)
sqlite3.OperationalError: no such table: users_table
...
...
sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) no such table: users_table
Run Code Online (Sandbox Code Playgroud)
我已将代码最小化为以下四个部分,这可能会重现错误消息:
/project/app/__init__.py:
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from config import config
db = SQLAlchemy()
def create_app(config_name):
app = Flask(__name__) …Run Code Online (Sandbox Code Playgroud) 这是一个非常简单的 ansible 案例,这让我很困扰。
这是ansible.cfg的内容:
[defaults]
transport = paramiko
hostfile = ./hosts
host_key_checking = False
timeout = 5
Run Code Online (Sandbox Code Playgroud)
主机的内容,所有用户名为“cisco”,密码也为“cisco”
[routers]
R1
R2
R3
...
Run Code Online (Sandbox Code Playgroud)
主机变量文件(R1),与R2,R3,...类似,只是IP地址不同:
---
ansible_ssh_host: 10.10.10.1
ansible_ssh_user: cisco
ansible_ssh_pass: cisco
Run Code Online (Sandbox Code Playgroud)
我可以通过 linux 成功 SSH 到这些路由器,但是当我使用 ansible 时,它导致“身份验证失败”:
fatal: [R1] => {'msg': 'FAILED: Authentication failed.', 'failed': True}
fatal: [R2] => {'msg': 'FAILED: Authentication failed.', 'failed': True}
...
Run Code Online (Sandbox Code Playgroud)
我用一些单行ansible命令测试了连接性,即使我手动输入用户名和密码,仍然出现错误,例如:
> ansible routers -m raw
R1 | FAILED => FAILED: Authentication failed.
R2 | FAILED => FAILED: Authentication failed.
> ansible routers …Run Code Online (Sandbox Code Playgroud) 我的情况是这样的:while循环将检查STDIN,一旦我输入一个包含关键字"win"的行,level0子程序将显示"hahaha我赢了!\n".现在我想将打印的"hahaha I win \n"重定向到名为$ result的变量,而不是将其显示在屏幕上,然后chomp()它,然后在屏幕上显示修改后的信息.
我的预期显示:"哈哈哈,我赢了!结果被重定向"
sub level0 {
print "hahaha I win!\n";
}
sub level1 {
level0();
}
sub check {
my ($word) = @_;
if ($word =~ /win/) {
level1($word);
}
}
while (<>) {
($line) = $_;
$result = check($line);
chomp($result);
print "$result, the result has been redirected\n";
}
Run Code Online (Sandbox Code Playgroud)