使用flask-sqlalchemy 操作mysql數(shù)據(jù)庫(kù)時(shí),注冊(cè)頁(yè)面填寫的信息無法添加到mysql數(shù)據(jù)庫(kù)中。
代碼如下:
db2.py
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
import pymysql
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://comejack:123456@localhost:3306/flask'
db = SQLAlchemy(app)
class User(db.Model):
__tablename__ = 'user'
id = db.Column(db.Integer, primary_key = True)
username = db.Column(db.String(80), unique = True, nullable = False)
password = db.Column(db.String(80), nullable = False)
email = db.Column(db.String(120), unique = True, nullable = False)
def __repr__(self):
return '<User %r>' % self.username
db.create_all()
forms.py
from wtforms.fields import BooleanField, TextField, StringField, PasswordField, SubmitField
from wtforms import validators
from wtforms.validators import DataRequired
from flask_wtf import FlaskForm
class RegForm(FlaskForm):
username = StringField('username', validators = [DataRequired()])
password = PasswordField('password', validators = [DataRequired()])
email = StringField('email', validators = [DataRequired()])
submit = SubmitField('Sign Up')
run.py
# -*- coding:UTF-8 -*---
from flask import Flask, render_template, flash, redirect, request
from forms import LoginForm, RegForm
from flask_wtf.csrf import CSRFProtect
from forms import *
from db2 import *
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True
db.init_app(app)
CSRFProtect(app)
@app.route('/reg/', methods = ['GET','POST'])
def reg():
form = RegForm()
if form.validate_on_submit():
user1 = User(id = 1, username = form.username.data, password = form.password.data, email = form.email.data)
print (user1)
db.session.add(user1)
db.session.commit()
return render_template('reg.html', title = 'Sign up', form = form)
app.run(host = '0.0.0.0', port = 9000, debug = True)
reg.html
{% extends "base.html" %}
{% block content %}
<h1>reg</h1>
<form action="" method="POST" name="reg">
{{form.csrf_token}}
<p>please enter your username:<br>
{{form.username}} <br>
</p>
<p>please enter your password:<br>
{{form.password}}<br>
</p>
<p>please enter your email:<br>
{{ form.email }}<br>
</p>
<p>{{ form.submit }}</p>
</form>
{% endblock %}
運(yùn)行python3 run.py后,在reg頁(yè)面輸入注冊(cè)的用戶名 密碼 郵箱后。點(diǎn)擊提交,出現(xiàn)報(bào)錯(cuò)
sqlalchemy.exc.OperationalError
sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) no such table: user [SQL: 'INSERT INTO user (id, username, password, email) VALUES (?, ?, ?, ?)'] [parameters: (1, '123123', '123123', 'c122@126.com')] (Background on this error at: http://sqlalche.me/e/e3q8)
請(qǐng)問如何解決。
北大青鳥APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國(guó)IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國(guó)家
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國(guó)一站式人才培養(yǎng)平臺(tái)、一站式人才輸送平臺(tái)。2014年4月3日在美國(guó)成功上市,融資1
北大課工場(chǎng)是北京大學(xué)校辦產(chǎn)業(yè)為響應(yīng)國(guó)家深化產(chǎn)教融合/校企合作的政策,積極推進(jìn)“中國(guó)制造2025”,實(shí)現(xiàn)中華民族偉大復(fù)興的升級(jí)產(chǎn)業(yè)鏈。利用北京大學(xué)優(yōu)質(zhì)教育資源及背
博為峰,中國(guó)職業(yè)人才培訓(xùn)領(lǐng)域的先行者
曾工作于聯(lián)想擔(dān)任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項(xiàng)目經(jīng)理從事移動(dòng)互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團(tuán)項(xiàng)目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺(tái)面向?qū)ο箝_發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫(kù),具有快速界面開發(fā)的能力,對(duì)瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁(yè)制作和網(wǎng)頁(yè)游戲開發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國(guó)Software AG 技術(shù)顧問,美國(guó)Dachieve 系統(tǒng)架構(gòu)師,美國(guó)AngelEngineers Inc. 系統(tǒng)架構(gòu)師。