我正在做一个Django项目,它有一个接收post请求并向注册用户发送欢迎电子邮件的API端点,目前,我必须使用一个表单将此请求发送到端点,有没有办法从我的环境变量中手动读取电子邮件和名称,并在我第一次运行应用程序时发送请求?就像这样
EMAIL = 'try@test.com'
NAME = 'Bob'我已经将其存储为env变量
下面是我当前的代码
@require_http_methods(["POST"])
@login_required
def add_user(request):
if request.is_ajax():
name = request.POST.get('name')
email = request.POST.get('email')
if not BlueUsers.objects.filter(user_email=email).exists():
newuser_obj = BlueUsers.objects.create(user_name=name, user_email=email)
conf_obj = Config.objects.first()
if conf_obj:
post_url = "{}/priv/create-user/".format(conf_obj.hostname)
data = {
'name': newuser_obj.user_name,
'email': newuser_obj.user_email,
'redtree_user_id': newuser_obj.id
}
headers = {'data-auth-key': conf_obj.authentication_token}
try:
response = requests.post(post_url, data=data, headers=headers)
except:
response = None我一直在努力解决这个问题
发布于 2020-01-27 15:54:17
有一个名为apps.py的文件,用于加载应用程序配置并在应用程序启动时运行代码。
您的目的应该通过以下代码来实现
class MyAppConfig(AppConfig):
name = "myapp"
def ready(self):
# your model and other imports here
email = os.environ.get('EMAIL')
name = os.environ.get('NAME')
if not BlueUsers.objects.filter(user_email=email).exists():
newuser_obj = BlueUsers.objects.create(user_name=name, user_email=email)
conf_obj = Config.objects.first()
if conf_obj:
post_url = "{}/priv/create-user/".format(conf_obj.hostname)
data = {
'name': newuser_obj.user_name,
'email': newuser_obj.user_email,
'redtree_user_id': newuser_obj.id
}
headers = {'data-auth-key': conf_obj.authentication_token}
try:
response = requests.post(post_url, data=data, headers=headers)
except:
response = None您在AppConfig类的ready方法中编写的任何逻辑都将在每次启动时执行一次。
https://stackoverflow.com/questions/59923264
复制相似问题