0

I'm new to flask web development and I'm using sqlite to store email address my code is

from flask import *
import sqlite3


app = Flask(__name__)

conn = sqlite3.connect("emails.db")
cursor = conn.cursor()
cursor.execute("CREATE TABLE email_addresses1 ( email TEXT );")

@app.before_request
def before_request():
    g.db = sqlite3.connect("emails.db")

@app.teardown_request
def teardown_request(exception):
     if hasattr(g, 'db'):
        g.db.close()

@app.route('/')
def hello():
    return render_template('index.html')

@app.route('/signup', methods = ['POST'])
def signup():
    email = request.form['email']
    print("The email address is '" + email + "'")
    g.db.execute("INSERT INTO email_addresses VALUES (?)", [email])
    g.db.commit()
    return redirect('/')

@app.route('/emails.html')
def emails():
    email_addresses = g.db.execute("SELECT email FROM  email_addresses").fetchall()
    return email_addresses

if __name__ == "__main__":
    app.run(debug=True)   

I get following error message

cursor.execute("CREATE TABLE email_addresses1 ( email TEXT );")
sqlite3.OperationalError: table email_addresses1 already exists
Remi Guan
  • 21,506
  • 17
  • 64
  • 87

1 Answers1

2

Create the table only if it does not exist already - add IF NOT EXISTS to your create table statement.

from flask import *
import sqlite3


app = Flask(__name__)

conn = sqlite3.connect("emails.db")
cursor = conn.cursor()
cursor.execute("CREATE TABLE IF NOT EXISTS email_addresses1 ( email TEXT );")
...

Look at SQLite doc

Dušan Maďar
  • 9,269
  • 5
  • 49
  • 64