我正在使用Flask开发,我正在尝试创建一个页面来创建页面(作为一种自定义CMS)。因此页面需要为在app.py文件中调用时呈现页面模板的函数创建自己的@ app.route装饰器。我想出的是创建三个函数:remove_last_two_lines
和create_rendering_func
以及add_back_last_lines
(以他们的行为命名)。 remove_last_two_lines
函数和add_back_last_lines
函数完全符合我的要求。我遇到的问题是create_rendering_func
。它根本不做任何事情,并且不会引发错误。所以我认为代码是有效的(我正在传递有效的论据),我只是不明白为什么它不起作用。被覆盖的行是空的(这就是为什么在函数的最后一行之后有多个换行符的原因)。提前谢谢!
def add_new_url(route, func_name, title, filename):
lines = open(__file__, 'r').readlines()
lines[-6] = '@app.route(\'%s\')' % route
lines[-5] = '\ndef %s' % func_name
lines[-4] = '\n\trender_template(\'filename\', the_title=%s)\n\n\n\n\n' % title
(这种方法很糟糕。有关更好方法的任何提示都很受欢迎)
答案 0 :(得分:1)
我会将要插入的数据写为换行符(db.collection.update({'prev': updatedDocumentId},{'$set': {'prev_label': newLabel}}, multi=True)
)附加的字符串列表,并通过切片将其插入\n
;
lines
它需要将整个文件读入内存并在写入之前在内存中创建一个新文件,如果你的文件非常大,这可能是一个问题,但它会插入" Hello"和#34;世界!"在文件的第二行到最后一行之前。