我最近在我的PC上安装了Microsoft SQL Server 2014,因为我想为我正在构建的Web应用程序创建一个数据库(我已经学习了Python一年,并且对SQLite有非常基本的经验).
在安装SQL Server 2014并创建一个名为Users的数据库之后,我只是尝试将一些非常基本的命令运行到我的数据库中,但我一次又一次地遇到了第一个障碍!
我已经安装了pymssql和pyodbc,并尝试直接使用这些命令运行命令,但都失败了.(例如,当我设置变量conn = pymssql.connect(server,user,password,"tempdb")时,pymssql给我一个TypeError:'NoneType'类型的参数不可迭代
我最近的尝试是使用SQLalchemy来实现我期待已久的SQL数据库连接.但是,在安装它之后,它失败了以下错误: "sqlalchemy.exc.OperationalError:(pymssql.OperationalError)(20009,'DB-Lib错误消息20009,严重性9:\n无法连接:Adaptive Server不可用或不存在\n未知错误期间的nNet-Lib错误(10035)\n')"
我需要回答的问题是,如何使用SQLalchemy开始与我的数据库通信?
我使用的代码如下:从sqlalchemy import*
engine = create_engine('mssql+pymssql://Han & Lew:@SlugarPlum:1433/Users')
m = MetaData()
t = Table('t', m,
Column('id', Integer, primary_key=True),
Column('x', Integer))
m.create_all(engine)
Run Code Online (Sandbox Code Playgroud)
是的,我的电脑叫做SlugarPlum.用户是Han&Lew.我的服务器名为THELROYSERVER.DSN = 1433.没有密码.(我不知道我在网上提供这些信息是否明智,但我所拥有的数据不敏感,所以我觉得值得一试.)
此外,如果任何人都可以指引我使用Python-SQL服务器的超初学者资源,这将是非常棒的,因为我似乎被这看起来很复杂!
我正在尝试编写一个函数来处理我对数据库执行的所有查询,但是,我正在努力寻找一种向我的请求动态添加参数的方法。
所有 NPM 文档都提供了添加参数的非动态示例(https://www.npmjs.com/package/mssql),有些无济于事。
NPM 文档示例:
function runStoredProcedure() {
return pool2.then((pool) => {
pool.request() // or: new sql.Request(pool2)
.input('input_parameter', sql.Int, 10)
.output('output_parameter', sql.VarChar(50))
.execute('procedure_name', (err, result) => {
// ... error checks
console.dir(result)
})
});
}
Run Code Online (Sandbox Code Playgroud)
我的实现看起来像这样
// promise style:
const pool2 = new sql.ConnectionPool(config, err => {
// ... error checks
});
pool2.on('error', err => {
// ... error handler
})
function runStoredProcedure(res, proc, sqlParams) {
return pool2.then((pool) => {
pool.request() // or: new sql.Request(pool2)
.input('input_parameter', sql.Int, …Run Code Online (Sandbox Code Playgroud) 我正在尝试将UTC日期/时间转换为"欧洲/伦敦"时区.我已经尝试使用tz.localize使用日期,但我被告知日期时间并不天真.如果我尝试删除时区,我仍然会得到相同的错误.
从根本上说,我想得到这个日期: 04/05/2016 15:00 成为这个日期: 04/05/2016 14:00
我的代码如下,我使用iso8601解析日期.
date = 2016-05-04 15:00:00+00:00
fix_pars = iso8601.parse_date(str(date))
Run Code Online (Sandbox Code Playgroud)
我曾尝试使用pytz.localize,但没有成功,因为它不喜欢我的约会已设置时区的事实.
我发现这方面的文档真的令人困惑.我想要的只是一个神奇的功能,它采用日期并根据请求的时区进行转换.我最好使用什么功能?
我正在使用一行代码来遍历元组列表并将其中的值转换为整数.但是,当我到达一个NoneType元素时,我收到以下错误.
TypeError:int()参数必须是字符串或数字,而不是'NoneType'
我希望能够遍历元组列表并处理NoneTypes.NoneType需要保留为None,因为它需要以None形式提交给我的数据库.
我想我可能需要做一些Try和Except代码,但我不知道从哪里开始.
我使用的代码如下:
big_tuple = [('17', u'15', u'9', u'1'), ('17', u'14', u'1', u'1'), ('17', u'26', None, None)]
tuple_list = [tuple(int(el) for el in tup) for tup in big_tuple]
Run Code Online (Sandbox Code Playgroud)
没有最后一个元组,我会得到以下返回:
[(17, 15, 9, 1), (17, 14, 1, 1)]
Run Code Online (Sandbox Code Playgroud)
我理想的回归是:
[(17, 15, 9, 1), (17, 14, 1, 1), (17, 14, None, None)]
Run Code Online (Sandbox Code Playgroud)
任何想法或建议都会非常有帮助.
python ×3
sql-server ×2
database ×1
datetime ×1
integer ×1
node.js ×1
nonetype ×1
pymssql ×1
pyodbc ×1
sqlalchemy ×1