我正在使用Python 3.6,flask,pyodbc,并连接到SQL Server。
我试图建立与数据库的连接,然后创建带有参数的查询。
这是代码:
app.py
from flask import Flask, render_template, flash, redirect, url_for, session, request, logging
from wtforms import Form, StringField, TextAreaField, PasswordField, validators
from passlib.hash import sha256_crypt
from functools import wraps
import pyodbc
import os
app = Flask(__name__)
# Config SQL Server
conn = pyodbc.connect("DRIVER={ODBC Driver 11 for SQL Server};"
"SERVER=(local);"
"DATABASE=Restaurant;"
"UID=sa;"
"PWD=1tc0r3;"
"Trusted_Connection=yes;")
# ----------------------------------------------------
@app.route("/")
def hello():
return render_template('accounts/login.html', clients=clients)
# ----------------------------------------------------
# Register Form Class
class RegisterForm(Form):
name = StringField('Fullname', [validators.Length(min=1, max=50)])
email = StringField('EmailAddress', [validators.Length(min=6, max=50)])
password = PasswordField('Password', [
validators.DataRequired(),
validators.EqualTo('confirm', message='Passwords do not match')
])
confirm = PasswordField('Confirm Password')
# ----------------------------------------------------
# User Register
@app.route('/register', methods=['GET', 'POST'])
def register():
form = RegisterForm(request.form)
if request.method == 'POST' and form.validate():
name = form.name.data
email = form.email.data
password = sha256_crypt.encrypt(str(form.password.data))
# Create cursor
cur = conn.cursor()
# Execute query
cur.execute("INSERT INTO Users(Fullname, EmailAddress, Password) VALUES(%s, %s, %s)", (name, email, password))
# Commit to DB
conn.commit()
# Close connection
cur.close()
flash('You are now registered and can log in', 'success')
return redirect(url_for('hello'))
return render_template('accounts/register.html', form=form)
if __name__ == '__main__':
app.secret_key='1234'
app.debug = True
host = os.environ.get('IP', '127.0.0.1')
port = int(os.environ.get('PORT', 5050))
app.run(host=host, port=port)
register.html
{% extends 'layouts/account_base.html'%}
{% block body %}
<div class="register-box-body">
<p class="login-box-msg">Register a new membership</p>
{% from "includes/_formhelpers.html" import render_field %}
<form class="site-form" method="POST" action="">
<div class="form-group">
{{render_field(form.name, class_="form-control")}}
</div>
<div class="form-group">
{{render_field(form.email, class_="form-control")}}
</div>
<div class="form-group">
{{render_field(form.password, class_="form-control")}}
</div>
<div class="form-group">
{{render_field(form.confirm, class_="form-control")}}
</div>
<p><input type="submit" class="btn btn-primary" value="Submit"></p>
</form>
</div>
{% endblock %}
当我运行程序时,出现此错误:
pyodbc.ProgrammingError:(’SQL包含0个参数标记,但是提供了3个参数’,’HY000’)
pyodbc使用?
,而不是%s
作为参数占位符。
我试图在Spring Data JPA中创建存储库方法,如: 但它给我错误: 表格: 我想用create(即创建日期)按排序顺序查找表中的所有数据。 Spring 数据查询参数将根据其位置进行替换。但这可能会出错,绑定可能容易出错。因此,建议在方法参数中使用@Param注释来绑定查询参数名称。在查询中,您需要使用:p aramName来指示相同的参数名称将与方法参数绑定
我有一个非常奇怪的问题,很简单,但我不明白问题是什么。 我有一个类,ClassA调用ClassB中的函数,比如- 类A是在我的applicationContext中定义的bean。类xml ClassB中的函数定义看起来像 IntelliJ没有指出任何语法问题,一切看起来都很正常。。。然而,当我试图编译时,Maven出现了一个异常 B类与a类位于不同的模块中,因此B类位于a类的pom中。作为依赖项
当我使用JAP接口JpaSpecificationExecutor时,我键入以下代码并抛出一个错误“至少提供了2个参数,但查询中只存在1个参数”,我不知道为什么。 我只想获得动态条件下的结果。异常消息如下:
我试图在我的services.yaml中为ImageManager.php获取一个参数,但它不起作用,我无法解决此错误。 错误是这样的: 类型错误:参数太少,无法运行App\Manager\ImageManager::__construct(),0在C:\wamp64\www\SymfonyAPI\var\ache\dev\ContainerZxFSS5S\getImageManagerServi
考虑以下功能: 当然,我们可以像这样调用它: 但是,提供显式闭包参数会导致编译器抱怨: 这是您的意图吗?阅读的留档时,我没有找到关于参数是否始终被包装的语句,即使在提供闭包时也是如此。我对的理解是: 接受闭包参数。如果参数不是闭包,但与闭包返回的类型相同,则包装它。 然而,我看到的行为是:无论如何都要包装参数。 一个更详细的例子使这在我看来很奇怪: 现在假设我想散列值的键: 为了澄清:的类型是 参
问题内容: 我经常碰巧处理可以是数组或null变量的数据,并用这些数据提供一些数据。 当为foreach提供非数组数据时,会收到警告: 警告:[…]中为foreach()提供了无效的参数 假设无法重构该函数以始终返回数组(向后兼容性,不可用的源代码,无论其他原因),我想知道哪种方法最有效,最有效的避免了这些警告: 转换为数组 初始化为数组 包裹有 其他(请建议) 问题答案: 我个人认为这是最干净的