我使用python 3.8在我的PC上创建了一个网站,我不得不将其移至开发服务器上,该服务器使用python 2.7,当我开发所使用的代码时,对于我正在使用的课程,我无法对其进行更新'f'打印数据,但是我不确定如何更改我得到的内容,因此它将在python 2.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
答案 0 :(得分:0)
尝试以下代码:
def __repr__(self):
return "Member('" + self.username + "', '{self.email}')"
def __repr__(self):
return "Share('" + self.title + "', '" + self.share_date + "')"
答案 1 :(得分:0)
Python 2不支持f字符串,但是您可以使用简单的格式字符串:
return "Member('%s', '%s')" % (self.username, self.email)
答案 2 :(得分:0)
您的主要代码在python3中: 从Python3开始,f字符串是格式化字符串的好方法。因此,您的代码:
f"Member('{self.username}', '{self.email}')"
在您的系统上工作正常。
您的服务器是python2,
f-strings不包含在python2中。因此您不能使用字符串格式化程序。 您必须使用旧语法:
"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支持不同的东西。
如果我不明白您的答案,请发表评论或回复,以便正确获取。谢谢。