Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Include a .py-file, still not ruining cronjob (Python, beginner)?

I'm building a service, which has a few cronjobs running, written in Python. However, this is my first Python-project ever, so I'm still a very beginner.

What I'm doing now, is that I have my database-connection handled on every file, so basically if I wanted to change the host, I would need to go through all the files. I'm now looking into a PHP-include() similar method for Python, so that I could include some general stuff instead of copy-pasting.

Also, the Python-files are ran in cronjob, so the method should work on cronjobs too :)

like image 527
Martti Laine Avatar asked Nov 23 '25 13:11

Martti Laine


2 Answers

If it's really just a couple of settings for a single database connection, just put it in a Python module and import it in all of your files. Why add any complexity you don't need?

If it's more complicated, use ConfigParser as @AdamMatan suggested.

# dbconfig.py
host = '127.0.0.1'
user = 'stack'
password = 'overflow'

# db.py

import dbconfig
print dbconfig.host
print dbconfig.user
print dbconfig.password
like image 111
agf Avatar answered Nov 25 '25 02:11

agf


Use an external configuration file, with your db connection (host, name, password, db, ...) in it, and read the configuration file from within the Python script.

This makes changes easy (even for non-programmers) and nicely complies with the Single Choice Principle.

Example:

db.cfg

[db]
host=127.0.0.1
user=stack
password=overflow

db.py

import ConfigParser

config = ConfigParser.ConfigParser()
config.readfp(open('db.cfg'))

print config.get('db', 'host')

Execution result:

127.0.0.1
like image 32
Adam Matan Avatar answered Nov 25 '25 02:11

Adam Matan



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!