亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用 SQLite / SQLAlchemy 創建數據庫表?

如何使用 SQLite / SQLAlchemy 創建數據庫表?

白衣染霜花 2023-07-11 14:06:11
我正在嘗試使用 SQLAlchemy/SQLite 在現有數據庫中創建一個表,我必須在其中存儲用戶和密碼,但它返回一個錯誤,指出列 pwd 不存在!我錯過了什么嗎?我把事情搞砸了嗎?我仍然不太明白,我按照一些在線教程中的所有步驟進行操作,但仍然沒有任何結果。這是我開發的類對象,然后從另一個寄存器表單我嘗試存儲應用程序中的密碼,但錯誤應該在此代碼中:import osbasedir = os.path.abspath(os.path.dirname(__file__))# flask importsfrom flask import Flask from flask_sqlalchemy import SQLAlchemyfrom flask_bcrypt import Bcryptfrom sqlalchemy import *# create flask appapp = Flask(__name__)# set sqllite db connectionapp.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///' + os.path.join(basedir, 'data-dev.sqlite')engine= create_engine(app.config['SQLALCHEMY_DATABASE_URI'])# bcrypt extension init to appbcrypt = Bcrypt(app)# sqlite init to appdb = SQLAlchemy(app) # define meta data for tablemeta=MetaData()userstable = Table('users', meta, Column('id', Integer, primary_key = True, autoincrement=True), Column('username', String, unique=True), Column('pwd', String))# create table to sqlite meta.create_all(engine)class User(db.Model):    # user columns    id = db.Column(db.Integer(), primary_key=True, autoincrement=True)    username = db.Column(db.String(64), unique=True)    pwd = db.Column(db.String(128))     def __init__(self,username,pwd):        #self.id=id        self.username=username        self.pwd=bcrypt.generate_password_hash(pwd)# create user objectuser = User('anish','23434')# insert user object to sqlitedb.session.add(user)# commit transactiondb.session.commit()這是錯誤:sqlalchemy.exc.OperationalError 操作錯誤:(sqlite3.OperationalError) 表用戶沒有名為 pwd 的列 [SQL: INSERT INTO user (username, pwd) VALUES (?, ?)] [參數:('ita_itf', '$2b$12$ VmpTsd0o4uTLj0wGypGu7ujhzYHLlV8k9ekaIP1.yh5lUMMgOM4MC')]
查看完整描述

1 回答

?
呼啦一陣風

TA貢獻1802條經驗 獲得超6個贊

import os

basedir = os.path.abspath(os.path.dirname(__file__))


# flask imports

from flask import Flask 

from flask_sqlalchemy import SQLAlchemy

from flask_bcrypt import Bcrypt

from sqlalchemy import *


# create flask app

app = Flask(__name__)

# set sqllite db connection

app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///' + os.path.join(basedir, 'data-dev.sqlite')

engine= create_engine(app.config['SQLALCHEMY_DATABASE_URI'])

# bcrypt extension init to app

bcrypt = Bcrypt(app)


# sqlite init to app

db = SQLAlchemy(app)

 

# define meta data for table

meta=MetaData()

userstable = Table('users', meta, Column('id', Integer, primary_key = True, autoincrement=True), Column('username', String, unique=True), Column('pwd', String))


# create table to sqlite 

meta.create_all(engine)


class User(db.Model):

    # table name for User model

    __tablename__ = "users"


    # user columns

    id = db.Column(db.Integer(), primary_key=True, autoincrement=True)

    username = db.Column(db.String(64), unique=True)

    pwd = db.Column(db.String(128))

 

    def __init__(self,username,pwd):

        #self.id=id

        self.username=username

        self.pwd=bcrypt.generate_password_hash(pwd)


# create user object

user = User('anish','23434')

# insert user object to sqlite

db.session.add(user)

# commit transaction

db.session.commit()


查看完整回答
反對 回復 2023-07-11
  • 1 回答
  • 0 關注
  • 201 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號