Thank you for your response and I am immediately interested in your articles.
17 Mart 2021 Çarşamba tarihinde saat 20:46:11 UTC+3 itibarıyla Simon King şunları yazdı: > OK, I see. You're creating tables dynamically, and you want to be able > to insert data into those tables. > > I think it'll be easier to use SQLAlchemy Core for this, rather than > the ORM. You can use reflection to load table definitions from the > database. > > > https://docs.sqlalchemy.org/en/14/core/reflection.html#reflecting-database-objects > > https://docs.sqlalchemy.org/en/14/core/tutorial.html#coretutorial-insert-expressions > > That would look something like this (completely untested): > > # if there's a chance multiple people can call this > # at the same time, you'll need to add a lock around it > def get_table(table_name): > if table_name in meta.tables: > return meta.tables[table_name] > return Table(table_name, meta, autoload_with=db.session.connection()) > > table_name = request.form.get("varsayilanlar") > table = get_table(table_name) > insert = table.insert().values(**tablo) > db.session.execute(insert) > > Simon > > On Wed, Mar 17, 2021 at 4:19 PM FURKAN bilgin <[email protected]> wrote: > > > > 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ı: > >> > >> I assumed you were defining classes corresponding to your database > >> tables, as shown here: > >> > >> https://docs.sqlalchemy.org/en/14/orm/tutorial.html#declare-a-mapping > >> > >> If that's not how you're using SQLAlchemy, you'll have to show your > code. > >> > >> Simon > >> > >> On Wed, Mar 17, 2021 at 2:07 PM FURKAN bilgin <[email protected]> > wrote: > >> > > >> > I think we keep it in RAM in the first method, so it may be a problem > if the program is restarted. and I guess I don't understand what you mean > by Base class. > >> > 17 Mart 2021 Çarşamba tarihinde saat 14:27:31 UTC+3 itibarıyla Simon > King şunları yazdı: > >> >> > >> >> There are lots of ways of doing this. One option is to provide a > >> >> dictionary when creating your declarative_base: > >> >> > >> >> classes = {} > >> >> Base = declarative_base(class_registry=classes) > >> >> > >> >> Now you can look up classes by name in that classes dictionary: > >> >> > >> >> def get_table_by_name(name): > >> >> return classes[name] > >> >> > >> >> Another option could be to iterate over Base.__subclasses__: > >> >> > >> >> def get_table_by_name(name): > >> >> for cls in Base.__subclasses__(): > >> >> if cls.__name__ == name: > >> >> return cls > >> >> > >> >> Hope that helps, > >> >> > >> >> Simon > >> >> > >> >> On Tue, Mar 16, 2021 at 7:14 PM FURKAN bilgin <[email protected]> > wrote: > >> >> > > >> >> > table_name = "table_name" > >> >> > > >> >> > #get table as table > >> >> > > >> >> > new = table(**tablo) > >> >> > db.session.add(table) > >> >> > db.session.commit() > >> >> > > >> >> > -- > >> >> > SQLAlchemy - > >> >> > The Python SQL Toolkit and Object Relational Mapper > >> >> > > >> >> > http://www.sqlalchemy.org/ > >> >> > > >> >> > To post example code, please provide an MCVE: Minimal, Complete, > and Verifiable Example. See http://stackoverflow.com/help/mcve for a full > description. > >> >> > --- > >> >> > You received this message because you are subscribed to the Google > Groups "sqlalchemy" group. > >> >> > To unsubscribe from this group and stop receiving emails from it, > send an email to [email protected]. > >> >> > To view this discussion on the web visit > https://groups.google.com/d/msgid/sqlalchemy/c3c7c369-7d7f-41b0-b6f3-273b6c76314dn%40googlegroups.com > . > >> > > >> > -- > >> > SQLAlchemy - > >> > The Python SQL Toolkit and Object Relational Mapper > >> > > >> > http://www.sqlalchemy.org/ > >> > > >> > To post example code, please provide an MCVE: Minimal, Complete, and > Verifiable Example. See http://stackoverflow.com/help/mcve for a full > description. > >> > --- > >> > You received this message because you are subscribed to the Google > Groups "sqlalchemy" group. > >> > To unsubscribe from this group and stop receiving emails from it, > send an email to [email protected]. > >> > To view this discussion on the web visit > https://groups.google.com/d/msgid/sqlalchemy/1f98d725-f15f-4fde-9fe2-4205f71eb1d8n%40googlegroups.com > . > > > > -- > > SQLAlchemy - > > The Python SQL Toolkit and Object Relational Mapper > > > > http://www.sqlalchemy.org/ > > > > To post example code, please provide an MCVE: Minimal, Complete, and > Verifiable Example. See http://stackoverflow.com/help/mcve for a full > description. > > --- > > You received this message because you are subscribed to the Google > Groups "sqlalchemy" group. > > To unsubscribe from this group and stop receiving emails from it, send > an email to [email protected]. > > To view this discussion on the web visit > https://groups.google.com/d/msgid/sqlalchemy/20c81613-0794-4909-b353-200446d0a8a1n%40googlegroups.com > . > -- SQLAlchemy - The Python SQL Toolkit and Object Relational Mapper http://www.sqlalchemy.org/ To post example code, please provide an MCVE: Minimal, Complete, and Verifiable Example. See http://stackoverflow.com/help/mcve for a full description. --- You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/sqlalchemy/c5afe7e2-e752-45e8-8bb4-540def17a98en%40googlegroups.com.
