对flask wtf使用codemrror javascript库
flask-codemirror的Python项目详细描述
使用codemarror javascript库实现flask和flask wtf的源代码编辑器
安装
$ pip install flask-codemirror
示例
如何使用此模块的简单示例
fromflask_wtfimportFlaskFormfromflask_codemirror.fieldsimportCodeMirrorFieldfromwtforms.fieldsimportSubmitFieldclassMyForm(FlaskForm):source_code=CodeMirrorField(language='python',config={'lineNumbers':'true'})submit=SubmitField('Submit')
codemrrorfield的工作方式与textarefield
@app.route('/',methods=['GET','POST'])defindex():form=MyForm()ifform.validate_on_submit():text=form.source_code.datareturnrender_template('index.html',form=form)
模块需要以通常的方式初始化,并且可以使用app.config键进行配置
fromflaskimportFlaskfromflask_codemirrorimportCodeMirror# mandatoryCODEMIRROR_LANGUAGES=['python','html']WTF_CSRF_ENABLED=TrueSECRET_KEY='secret'# optionalCODEMIRROR_THEME='3024-day'CODEMIRROR_ADDONS=(('ADDON_DIR','ADDON_NAME'),)app=Flask(__name__)app.config.from_object(__name__)codemirror=CodeMirror(app)
需要初始化配置代码镜像语言以加载javascript。它定义了所有要用字段编辑的语言。 configcodemirror\u主题是可选的,用于使用CodeMirror website中的css设置文本区域的样式。 configcodemirror\u插件是可选的,可以启用许多很酷的选项请参见Codemirror Addons以获取可用的插件。
最后,模板需要添加支持javascript代码,方法是调用codemarror.include@codemarror():
<html> <head> {{codemirror.include_codemirror()}} </head> <body> <form method="POST"> {{form.source_code}} <input type="submit" value="OK"> </form> </body> </html>
javascript类是从cdn导入的,应用程序不需要提供静态文件。