尝试创建sqlalchemy数据库时出现python语法错误

2024-03-29 07:05:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我用Python3.8在我的电脑上创建了一个网站,我不得不将其移动到一个开发服务器上,该服务器使用Python2.7,我无法对其进行更新,因为我正在学习一门课程。当我开发代码时,我使用了“f”来打印数据,但我不确定如何更改我得到的内容,以便它能在Python2.7上工作。 下面是我需要更改的代码部分

 def __repr__(self):
        return f"Member('{self.username}', '{self.email}')"

    def __repr__(self):
        return f"Share('{self.title}', '{self.share_date}')"

这也是我从命令行得到的响应

from flaskproject import db
/home/40317391/submission-project.git-/Blog/lib/python2.7/site-packages/flask_sqlalchemy/__init__.py:834: FSADeprecationWarning: SQLALCHEMY_TRACK_MODIFICATIONS adds significant overhead and will be disabled by default in the future.  Set it to True or False to suppress this warning.
  'SQLALCHEMY_TRACK_MODIFICATIONS adds significant overhead and '
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "flaskproject/__init__.py", line 19, in <module>
    from flaskproject import routes
  File "flaskproject/routes.py", line 3, in <module>
    from flaskproject.forms import SignUpForm, LoginForm, EditHubForm, ShareForm
  File "flaskproject/forms.py", line 5, in <module>
    from flaskproject.models import Member
  File "flaskproject/models.py", line 20
    return f"Member('{self.username}', '{self.email}')"
                                                      ^
SyntaxError: invalid syntax

Tags: 代码infrompyimportself服务器return
3条回答

请尝试以下代码:

 def __repr__(self):
        return "Member('" + self.username + "', '{self.email}')"

    def __repr__(self):
        return "Share('" + self.title + "', '" + self.share_date + "')"

Python 2不支持f字符串,但可以使用简单的格式字符串:

return "Member('%s', '%s')" % (self.username, self.email)

您的主代码是在python3中: 从Python3开始,f字符串是格式化字符串的好方法。因此,您的代码:

f"Member('{self.username}', '{self.email}')"

在您的系统上运行良好

你的服务器是python2

python2中不包括f字符串。因此不能使用字符串格式化程序。 您必须使用旧语法:

"Member('" + self.username + "', '{self.email}')"

def __repr__(self):
    return "Member('" + self.username + "', '{self.email}')"
    
    def __repr__(self):
       return "Share('" + self.title + "', '" + self.share_date + "')"

顺便说一句,这两种语法将显示相同的结果,只是不同版本的python支持不同的东西

如果我不理解你的答案,请评论或回复,以便我正确理解。谢谢

相关问题 更多 >