Giter Site home page Giter Site logo

the-flask-mega-tutorial-zh's People

Contributors

luhuisicnu avatar sansx avatar super-buster avatar wedojava avatar xueyi1230 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

the-flask-mega-tutorial-zh's Issues

携带token请求

我经过无数次实验,是在搞不懂,是怎么发起请求的
如下,我通过您的方式,确实成功生成了token(注册用户)
但是,当我携带token请求时,缺始终失败,
http GET http://localhost:5000/api/users/1 token:******
您能帮我看看是怎么回事么,我看文档是这么添加参数的,

结果一直都是
{
"error": "Unauthorized"
}

第十一章 邮件 密码重置处

user.set_password(form.password.data)
db.session.commit()
源代码是这样
但是这是有问题第 我学习的过程中发现像之前的代码是有问题的
我们应该
user.set_password(form.password.data)
db.session.add(user)
db.session.commit()

第十六章可以加一点提示吗

elasticsearch服务的版本不能好像在搜索的时候返回的json也不同,python项目中的elasticsearch版本不同使用search()这个方法的参数也不一样。
我的elasticsearch服务版本是7.2.0,python项目中的elasticsearch版本是7.0.2。使用下面这条语句会报错如下,
es.search(index='my_index', doc_type='my_index',body={'query': {'match': {'text': 'this test'}}})
Traceback (most recent call last):
File "", line 1, in
File "D:\Myproject\Python\Flask\Flask-Microblog\venv\lib\site-packages\elasticsearch\client\utils.py", line 84, in _wrapped
return func(*args, params=params, **kwargs)
TypeError: search() got an unexpected keyword argument 'doc_type'
我的elasticsearch服务版本是7.2.0,python项目中的elasticsearch版本是7.0.2。使用这条语句就不报错
es.search(index='my_index', body={'query': {'match': {'text': 'this test'}}})

代码效果与教程不符

我在第十三章:国际化和本地化.md翻译日期和时间这个部分做了跟教程一样的配置,所有我翻译的文本都显示了中文,可是moment.js显示的时间还是英文(我翻译包是中文而且是第一语言,源代码中都是英文),即使我再次updatecompile翻译包之后还是英文:
en not zh
问题有两个:

  • 作者的教程中显示了西班牙语,可是他并没有把hours、ago翻译成西班牙语(至少教程中没有说,源代码的*.po文件中也没有),那个日期和时间是自动翻译的?
  • 问题是不是出在第一个问题?

创建新的语言

flask translate init zh
报错
Error: No such command "translate".
这是为什么啊

Elasticsearch 报错

from elasticsearch import Elasticsearch
es = Elasticsearch('http://localhost:9200')
es.index(index='my_index', doc_type='my_index', id=1, body={'text': 'this is a test'})

elasticsearch.exceptions.ConnectionError: ConnectionError(<urllib3.connection.HTTPConnection object at 0x000001A8F01350B8>: Failed to establish a new connection: [WinError 10061] 由于目标计算机积极拒绝,无法连接。) caused by: NewConnectionError(<urllib3.connection.HTTPConnection object at 0x000001A8F01350B8>: Failed to establish a new connection: [WinError 10061] 由于目标计算机积极拒绝,无法连接。)

一个补充

您好!非常感谢你的这份翻译,我在阅读原文邮件这一章(第10章), Sending a Password Reset Email 这个小结中,作者在最后有一段话没有翻译出来。我认为那段是比较重要的一部分。能否补上那一部分?

下面是我的翻译:
但是在这两个模版中,由url_for()生成的reset_password链接还没有路由去处理。
我们将在下一部分添加。这里还有一个新的参数_external=True。使用url_for()生成的
链接默认都是相对路径的URL。举一个,url_for('user', username='susan'),
它返回的应该是 /user/susan. 在网页中这通常是有效的,因为浏览器从当前页面获取url的其余部分。
但是当我们用电子邮件来发送一个邮件时,这个上下文就不存在了,所以我们必须使用url的全路径。
当_external=True作为一个参数传递时,url的全路径被产生,所以在之前那个例子中,使用url_for将会
返回http://localhost:5000/user/susan, 或者在域名上部署应用程序的相应url。

css的引用

我想问一下比如像在index.html这个模板里怎么引用我自己的css?

<link rel="stylesheet" href="{{ url_for('static', filename='css/style.css') }}">

这种方式不起作用

<link rel="stylesheet" href="../static/css/style.css">
这种方式也不起作用

第四章:数据库.md[直接运行会报错]

在第四章中:

进入Python交互式环境后,导入数据库实例和模型:

from app import db
from app.models import User, Post
开始阶段,创建一个新用户:

u = User(username='john', email='[email protected]')
db.session.add(u)
db.session.commit()

运行到commit命令的时候会报错:"sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) no such table: user"
需要在创建数据库会话之前使用命令"db.create_all()"调用app/models里面自己定义的表,否则会找不到目标表报错

第十章发送邮箱不带token

你好大神,开发中碰到下面问题,请不吝赐教

接收邮件内容中无token,如下:
Dear susan,

To reset your password click here .

Alternatively, you can paste the following link in your browser's address bar:

http://127.0.0.1:5000/reset_password/

If you have not requested a password reset simply ignore this message.

Sincerely,

The Microblog Team

但是在方法中打印,有携带token:

http://127.0.0.1:5000/reset_password/eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJyZXNldF9wYXNzd29yZCI6MSwiZXhwIjoxNTc4MzA1NTU4Ljg4MDAyNzN9.QfVnEBNr3vyXpRVUvd5GZyPcTIC5fHn3dtoI6P84O-I


代码:
token = user.get_reset_password_token()
url = url_for('reset_password', token=token, _external=True)
print(url)
send_email('[Microblog] 重置密码',
sender=app.config['ADMINS'][0],
recipients=[user.email],
text_body=render_template('email/reset_password.txt', user=user, url=url),
html_body=render_template('email/reset_password.html', user=user, url=url)
)

请给予回复,谢谢

不理解验证重复用户里的__init__方法,求教

第七章 错误处理
最后那段,验证重复用户的地方,这段能否解释下,确实不太理解,我删除 __init__ 试了下,发现如果没有这段,提交修改后,表单就清空了,感觉提交的是空表单。

app/forms.py:

def __init__(self, original_username, *args, **kwargs):
        super(EditProfileForm, self).__init__(*args, **kwargs)
        self.original_username = original_username

为了方便大伙儿讲解,这是我的完整代码段:

class EditProfileForm(FlaskForm):
    username = StringField('Username', validators=[DataRequired()])
    about_me = TextAreaField('About me', validators=[Length(min=0, max=140)])
    submit = SubmitField('Submit')

    def __init__(self, original_username, *args, **kwargs):
        super(EditProfileForm, self).__init__(*args, **kwargs)
        self.original_username = original_username

    def validate_username(self, username):
        if username.data != self.original_username:
            user = User.query.filter_by(username=self.username.data).first()
            if user is not None:
                raise ValidationError('Please use a different username.')

无法按照文档描述,成功创建视图关系

按照第四章的内容,在models中为User、Post类添加了相关代码,但在试图给User添加信息的时候报错,提示如下:
sqlalchemy.orm.exc.LoaderStrategyException: Can't find strategy (('lazy', 'dynamci'),) for User.posts

在第二十章有一处错误

<a href="url_for('main.user', username=post.author.username)">
这里应该写成
<a href="{{ url_for('main.user', username=post.author.username) }}">

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.