1.imp模块,This module provides an interface to the mechanisms used to implement the import statement. It defines the following constants and functions:
imp. new_module(name)
Return a new empty module object called name. This object is not inserted in sys.modules.
imp. load_module(name, file, pathname, description )imp.find_module(name[, path])
2.db_imgrate 记录数据库模式变化,db_upgrade才是改变数据库的。
3.iv中。用虚拟环境中的python运行另一个文件夹中的东东,报错
两种方法:
方法一:
在cmd下,运行时在microblog文件夹下,指定python的版本C:\Users\hugleecool\Pycharm\microblog\flask\Scripts\python
方法二:
在pycharm设置中修改python解释器的路径至上面的环境。
然后Tools-Open Terminal
在cmd下,运行时在microblog文件夹下,指定python的版本C:\Users\hugleecool\Pycharm\microblog\flask\Scripts\python
方法二:
在pycharm设置中修改python解释器的路径至上面的环境。
然后Tools-Open Terminal
4.对models修改后,应该先运行db_migrate记录修改,再运行db_ungrade更新数据库。如果之前import过,现在应该退出python再import。因为不是reloaded
5.SQLAlchemy 错误处理:
sqlalchemy.exc.InvalidRequestError: This Session's transaction has been rolled back due to a previous exception during flush. To begin a new transaction with
this Session, first issue Session.rollback(). Original exception was: (IntegrityError) column nickname is not unique u'INSERT INTO user (nickname, email, ro
le) VALUES (?, ?, ?)' ('lee', '46@qq.com', 0)
原因: 当一个 SQL 事务出错时,唯一能做的就是回滚该事务,否则该会话(好像是与数据库连接同生命期)将不再接受任何语句
可以用with语句,也可以直接用异常处理回滚事物:
db.session.add(site)
try:
db.session.commit()
except:
db.session.rollback()
6.第6节profile and avatars。
{%extends "base.html"%}记住是英文标点,我用了中文的{}
<a href="">拼写错误。
也就是说,错误大都来源于拼写等错误,好好研究。
7.第8节。关于多行注释:
a.注释最好用 # 。
b.""" """其实是doc String,用于描述函数模块等描述
c.使用三引号注释时,也要注意上下文缩进
d.在pycharm中,用Ctrl + / 来批量注释