Skip to content
No description, website, or topics provided.
Python HTML Mako
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
app
migrations
README.md
app.db
config.py
demo.py
microblog.py

README.md

#microblog# 学习flask的记录,通过学习flask巩固python
1、Flask提供了一个名为url_for()的函数,它使用URL到视图函数的内部映射关系来生成URL。 例如,url_for('login')返回/login,url_for('index')返回/index。url_for()的参数是endpoint名称,也就是视图函数的名字。
2、Python 定义了__str__()和__repr__()两种方法,str()用于显示给用户,而__repr__()用于显示给开发人员。

        def __init__(self, name, gender):
            self.name = name
            self.gender = gender
        def __str__(self):
            return '(Person: %s, %s)' % (self.name, self.gender)
            __repr__ = __str__

3、对数据库的更改是在会话的上下文中完成的,你可以通过db.session进行访问验证。 允许在会话中累积多个更改,一旦所有更改都被注册,你可以发出一个指令db.session.commit()来以原子方式写入所有更改。 如果在会话执行的任何时候出现错误,调用db.session.rollback()会中止会话并删除存储在其中的所有更改。 要记住的重要一点是,只有在调用db.session.commit()时才会将更改写入数据库。 会话可以保证数据库永远不会处于不一致的状态。
添加另一个用户:

        u = User(username='susan', email='susan@example.com')
        db.session.add(u)
        db.session.commit()

每次数据库被修改时,都需要生成数据库迁移。 flask db migrate -m "new fields in user model",表示在user表更新两个新的字段。 4、Flask插件Flask-Login:管理用户登录状态,以便用户可以登录到应用,然后用户在导航到该应用的其他页面时,应用会“记得”该用户已经登录。它还提供了“记住我”的功能,允许用户在关闭浏览器窗口后再次访问应用时保持登录状态。
*用户模型上实现某些属性和方法,Flask-Login提供了一个叫做UserMixin的mixin类来将它们归纳其中
*is_authenticated: 一个用来表示用户是否通过登录认证的属性,用True和False表示。
*is_active: 如果用户账户是活跃的,那么这个属性是True,否则就是False(译者注:活跃用户的定义是该用户的登录状态是否通过用户名密码登录,通过“记住我”功能保持登录状态的用户是非活跃的)。
*is_anonymous: 常规用户的该属性是False,对特定的匿名用户是True。
*get_id(): 返回用户的唯一id的方法,返回值类型是字符串(Python 2下返回unicode字符串).

5、user = User.query.filter_by(username=username).first_or_404(),first_or_404(),当有结果时它的工作方式与first()完全相同,但是在没有结果的情况下会自动发送404 error给客户端.

You can’t perform that action at this time.