I am using Peewee and Psycopg2 via peewee's playhouse.db_url.connect. Is there a way or a parameter to instruct Peewee to reconnect automatically e.g. in case of a short outage in the PostgreSQL database while a given connection was open.
Related
I am currently connecting django with MySQL using mysqlclient module,can I use mysql connector which is used in python to connect with MySQL database, here in django to enter deal with MySQL database
I didn't actually tried it.did anyone have tried it
I read the documentation about "dbshell".
Then, it says:
Runs the command-line client for the database engine specified in your
ENGINE setting, with the connection parameters specified in your USER,
PASSWORD, etc., settings.
For PostgreSQL, this runs the psql command-line client.
For MySQL, this runs the mysql command-line client.
For SQLite, this runs the sqlite3 command-line client.
For Oracle, this runs the sqlplus command-line client.
So, as the documentation says, with the command below, it's possible to run(open) DB Command-Line Clients for PostgreSQL, MySQL, SQLite and Oracle:
python manage.py dbshell
My question:
With the command below, is it possible to run(open) DB Command-Line Clients for other databases such as MSSQL(SQL Server), MongoDB, etc?
python manage.py dbshell
No. At this moment (24th June, 2022) django doesn't support any other database backend. The source code has only backend for PostgreSQL, MySQL, SQLite and Oracle.
However, there is a MSSQL backend from Microsoft. It has all the bells and whistles.
For MongoDB, I haven't seen any backend that implemented client.py. You might want to request a feature to this project.
As far as I know, Yes, it's possible to run(open) the DB Command-Line Client for MSSQL(SQL Server) when connecting Django and MSSQL with mssql-django.
This is the MSSQL Command-Line Client as shown below:
I haven't been able to find any documentation regarding whether it's possible to access SQLITE3 (using Python) when the SQLITE database is hosted externally:
I have my SQLITE3 database hosted on my VPS (alongside some other stuff that doesn't really matter) - rather than having it as a local file with my Python program.
Therefore, is it possible for me to connect to the SQLITE database which is hosted on my VPS, or will the SQLITE DB have to be hosted locally for me to be able to do this?
The reason I want it to be accessible from my VPS is because I want to be able to run the program on multiple computers and them all have the same access to the database- if this isn't possible, are there any other options which would allow me to do this?
If you want to have a database server with external, possibly remote, applications interacting a client-server protocol switch to PostgreSQL, MariaDB, etc.
see: How to connect to SQLite3 database server?
I want to use MySQL in flask, and one config is
app.config['SQLALCHEMY_DATABASE_URI'] = "mysql+pymysql://user:password#127.0.0.1:3306/db"
If I use mysql+pymysql, it can work
But when I only use mysql, the erroe message like this
Internal Server Error
The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application.
But in my code, I don't import pymysql, so what is the pymysql and why need use that can work
I know pymysql is a moudle
Thanks your reply!
The create_engine function (which is what uses the URL given in the config), requires you to give it a "dialect". A "dialect" is the name of the underlying database engine that SQLAlchemy is connecting to.
However, since many databases have multiple different clients (in Python these implement DBAPI), so in many cases (such as for the mysql dialect) you're required to give the name of the client you want SQLAlchemy to use. In this case, you're asking it to use the pymysql library to actually handle connectivity with MySQL.
SQLAlchemy 1.3 supports the following dialect/DBAPI-libraries for connecting to MySQL:
mysqlclient (maintained fork of MySQL-Python)
PyMySQL
MySQL Connector/Python
CyMySQL
OurSQL
Google Cloud SQL
PyODBC
zxjdbc for Jython
I want to know that if multi-users try to access same database for insert or retrieve data via my python program, do they all need to install PostgreSQL in their computers? How this process works?
If the database is located on another server, then no, clients don't have to install postgresql. They will need to install a postgresql adapter, like psycopg, so that python can communicate with the database, and most applications choose to use some type of ORM, like sqlalchemy, on top of the database adapter to make communication with the database more object-oriented and pythonic.
If you use psycopg2, it already comes with lipq DLL, the library used to communicate with PostgreSQL through TCP.
Actually, psycopg2 is a wrapper for libpq:
http://initd.org/psycopg/docs/
Therefore, you won't need to install PostgreSQL server binaries in the client workstations.