首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在应用程序启动时向EndPoint发送请求

如何在应用程序启动时向EndPoint发送请求
EN

Stack Overflow用户
提问于 2020-01-27 06:18:29
回答 1查看 49关注 0票数 1

我正在做一个Django项目,它有一个接收post请求并向注册用户发送欢迎电子邮件的API端点,目前,我必须使用一个表单将此请求发送到端点,有没有办法从我的环境变量中手动读取电子邮件和名称,并在我第一次运行应用程序时发送请求?就像这样

代码语言:javascript
复制
EMAIL = 'try@test.com'
NAME = 'Bob'

我已经将其存储为env变量

下面是我当前的代码

代码语言:javascript
复制
@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

我一直在努力解决这个问题

EN

回答 1

Stack Overflow用户

发布于 2020-01-27 15:54:17

有一个名为apps.py的文件,用于加载应用程序配置并在应用程序启动时运行代码。

您的目的应该通过以下代码来实现

代码语言:javascript
复制
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方法中编写的任何逻辑都将在每次启动时执行一次。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59923264

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档