使用f-string编写Flask邮件验证函数时出现红色波浪线问题
解决Flask邮件函数中JS代码的红色波浪线问题
红色波浪线的原因是你在JS代码里直接写了email和password,但这两个是Python函数的参数,JS环境中并没有定义这两个变量,编辑器因此提示未定义错误。同时你的Python f-string也没有正确将这两个变量注入到HTML/JS内容中。
修正方法:通过Python的f-string把email和password变量直接替换到URL路径里,生成完整的跳转地址,而不是让JS去拼接未定义的变量。
修正后的代码:
def email_verification(email,password): message = Mail( from_email='hesheitaliabu@gmail.com', to_emails=email, subject='HEY BABYYYYYYYYYYYYYYYYYYY', html_content=f""" <!DOCTYPE html> <html lang="en" xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office"> <body> <button onclick="myFunction()">Replace document</button> <script> function myFunction() {{ window.location.href = "email_verify/{email}/{password}"; }} </script> </body> </html> """) Sg = sendgrid.SendGridAPIClient(api_key=os.environ.get('MyAPI')) Sg.send(message)
⚠️ 重要提醒:直接把密码放在URL里是极度不安全的操作,URL会被记录在浏览器历史、服务器日志、网络传输记录等多个地方,极易导致用户密码泄露。建议改用验证令牌机制:生成唯一的验证token并关联用户信息存入数据库,将token放入URL中,验证时通过token查询对应用户完成校验,而非直接传递密码。
内容的提问来源于stack exchange,提问作者qweqwe wqeqw
相关产品推荐
相关产品推荐

