今天要到了发布食谱模块的代码,py、html、css这些文件,先把这些文件放到相应的位置,再更改下名字
原来它只需要一个py文件,所以用的是@app.route来跳转url的,加入到我的项目中就要改用蓝图,首先在publish.py文件下创建蓝图对象
bp = Blueprint("publish", __name__, url_prefix="/publish")
然后在_init_.py文件中注册这个蓝图对象
from flaskr import auth, blog, publish
app.register_blueprint(auth.bp)
app.register_blueprint(blog.bp)
app.register_blueprint(publish.bp)
把publish中的app.route换为bp.route即可
之后在我的主页的html文件下更改下点击发布食谱等按钮后跳转的url即可
<a href="{{ url_for('publish.show') }}" class="put_cb" id="put_button">发布食谱</a>
<a href="{{ url_for('publish.show') }}" class="put_cb" id="put_link">共xx篇</a>
现在跳转能实现了,但我想让登录的账号的用户名显示在发布食谱页面上,因为我登录的时候把用户名、id等信息已经存入了一个全局变量g.user中,按理说只要把里面的值赋给发布食谱模块的这些参数里即可。
user_ID = g.user[0]
user_name = g.user[1]
但因为做发布食谱的同学为了方便,把这些值在函数外面赋值,我直接修改会报有关上下文的错误(RuntimeError: Working outside of request context.),所以就把这个写到了函数里面,结果就正常运行了。
之后数据库的同学想用excel批量插入数据,但好像只能批量插入char型的,而我的id是int型的,而且id需要是自增长的,因为用户注册要自动赋给用户id。我们把id设为char型,然后获取表中的行数,将(行数+1)作为新用户的id,再进行一次字符串类型的转换,把这个id插入到表中即可,这样就让用户id为char型了,excel批量插入数据就能用了。之后我把代码中因为id的类型从int变为char造成的问题改了一下后就成功了。
明天尝试对接下推荐系统模块。