I updated sqlalchemy and now I get an error when accessing the database. And their codes need to be coded:
What I really wanted to do was add data to a table with json data in the / main / write path. but now I get an error when I send / main / new-app post request (I updated sqlalchemy and it happened) related codes are below
Sorry for taking your time, there may not be a solution. I am thinking of rewriting the codes.
from sqlalchemy import MetaData, Table, Column, Integer, String, create_engine, DateTime,VARCHAR
from flask import Flask, abort, render_template, request,session,jsonify
from flask_sqlalchemy import SQLAlchemy
from datetime import datetime
from sqlalchemy import text
import json
meta = MetaData()
engine = create_engine('sqlite:////Users/dell/Desktop/2.2/db.db')
conn = engine.connect()
app = Flask(__name__)
app.config["SQLALCHEMY_DATABASE_URI"] = 'sqlite:////Users/dell/Desktop/2.2/db.db'
db = SQLAlchemy(app)
app.secret_key = "Lbgsa,pdsa_ıda)6Kyw%61"
@app.route("/main/new-app",methods = ["GET","POST"])
def new_app():
if request.method == "GET":
return render_template("gg.html")
if application.query.filter_by(name = request.form.get("username")).first():
return "UserName..."
isim = request.form.get("username")
varsayilanlar = request.form.get("varsayilanlar")
d_varsayilanlar = json.loads(varsayilanlar).keys()
lis = [Column('id', Integer, primary_key = True),Column('date', DateTime, nullable=False, default=datetime.now)]
for i in d_varsayilanlar:
lis.append(Column(i,VARCHAR(80)))
Table(isim, meta, *lis)
meta.create_all(engine)
new_app = application(name = isim,
password = request.form.get("password"),
anaSayfa = request.form.get("anaSayfa"),
manuelSayfa = request.form.get("manuelSayfa"),
dinamikSayfa = request.form.get("dinamikSayfa"),
varsayilanlar= request.form.get("varsayilanlar"),
dinamik = bool(request.form.get("dinamik")),
kitap = bool(request.form.get("kitap")),
kalem = bool(request.form.get("kalem")))
db.session.add(new_app)
db.session.commit()
return "200OK"
@app.route("/main/write",methods = ["GET","POST"])
def write():
if request.method == "GET":
return "POST!"
app = application.query.filter_by(name = request.form.get("username")).first()
if not (app):
return "Uygulama Bulunamadı"
elif not(app.kalem) and (app.password != request.form.get("password")):
return "TABLE NOT FOUND"
tablo = json.loads(request.form.get("varsayilanlar"))
#i want to get table here
new_row = meta.tables[request.form.get("username")]
employee = new_row(**tablo)
db.session.add(employee)
db.session.commit()
return "200ok"
class application(db.Model):
id = db.Column(db.Integer,primary_key = True)
name = db.Column(db.String(80))
password = db.Column(db.String(80))
anaSayfa = db.Column(db.String(80))
manuelSayfa = db.Column(db.String(80))
dinamik = db.Column(db.String(80))
dinamikSayfa = db.Column(db.String(80))
varsayilanlar= db.Column(db.String(80))
kitap = db.Column(db.String(80))
kalem = db.Column(db.String(80))
pub_date = db.Column(db.DateTime, nullable=False,default=datetime.now)
17 Mart 2021 Çarşamba tarihinde saat 17:17:56 UTC+3 itibarıyla Simon King şunları yazdı: