我有一个跟随的情况.. 我正在编写一个python程序。它要求用户输入用户名和密码。现在我从Web服务器上存储的数据库中获取用户名和密码,由GoDady提升并将其与用户输入的凭据进行比较。
我曾经这样做的方法如下:
#!/usr/bin/python
import MySQLdb
db = MySQLdb.connect(host="localhost",
user="john",
passwd="megajonhy",
db="jonhydb")
cur = db.cursor()
cur.execute("SELECT * FROM YOUR_TABLE_NAME")
for row in cur.fetchall():
print row[0]
db.close()
所以看到连接到程序内的数据库。我必须在程序中提供数据库的用户名和密码。如果我想把我的程序交给其他人,这个方法不好。因为那样我就会喜欢我的用户输入用户ID和密码。而不是连接到程序内的数据库,我希望程序调用一个web脚本,它为我完成所有操作,如果用户是认证用户,则返回。
我的方案的最佳方法是什么?
使用的语言:桌面程序(Python):web(PHP):数据库(MYSQL)
答案 0 :(得分:0)
您可以在这种情况下使用环境变量。
您必须首先export
您的变量,然后使用相同的脚本访问:
import os
password = os.environ['Your-password-variable']
这可能会有所帮助:https://godjango.com/blog/working-with-environment-variables-in-python/
答案 1 :(得分:0)
使用配置文件。
{
"db_user": "john",
"db_host": "localhost",
"db_pass": "megajonhy",
"database" : "jonhydb"
}
然后加载
import json
import MySQLdb
#Read setting and make available in settings dict
with open('/path/to/conf.json') as data_file:
settings = json.load(data_file)
#Open database connection(HOST, USER, PASS, DB)
db = MySQLdb.connect(settings["db_host"],
settings["db_user"],
settings["db_pass"],
settings["database"])