《Flask Web开发实战》中的第2个示例程序( 博客程序Bluelog)使用了这个扩展。
$ pip install flask-ckeditor复制代码
from flask_ckeditor import CKEditor
app = Flask(__name__)
ckeditor = CKEditor(app)复制代码
from flask_ckeditor import CKEditor
ckeditor = CKEditor()
def create_app():
app = Flask(__name__)
ckeditor.init_app(app)
return app复制代码
<script src="{{ url_for('static', filename='ckeditor/ckeditor.js') }}"></script>复制代码
<script src="//cdn.ckeditor.com/4.9.2/standard/ckeditor.js"></script>复制代码
{{ ckeditor.load() }}复制代码
{{ ckeditor.load(custom_url=url_for('static', filename='ckeditor/ckeditor.js')) }}复制代码
from flask_wtf import FlaskForm
from flask_ckeditor import CKEditorField
from wtforms import StringField, SubmitField
class PostForm(FlaskForm):
title = StringField('Title')
body = CKEditorField('Body')
submit = SubmitField('Submit')复制代码
<form method="post">
{{ form.title.label }}{{ form.title() }}
{{ form.body.label }}{{ form.body() }}
{{ form.submit() }}
</form>
{{ ckeditor.load() }}
{{ ckeditor.config(name='body') }}复制代码
<form method="post">
{{ ckeditor.create() }}
<input type="submit">
</form>
{{ ckeditor.load() }}
{{ ckeditor.config() }} <!-- 这时不用设置name参数 -->复制代码
提示 完整的示例程序在 examples/basic/和 examples/without-flask-wtf目录下。
from flask_ckeditor import upload_success, upload_fail
app.config['CKEDITOR_FILE_UPLOADER'] = 'upload'
@app.route('/files/<path:filename>')
def uploaded_files(filename):
path = '/the/uploaded/directory'
return send_from_directory(path, filename)
@app.route('/upload', methods=['POST'])
def upload():
f = request.files.get('upload') # 获取上传图片文件对象
# Add more validations here
if extension not in ['jpg', 'gif', 'png', 'jpeg']: # 验证文件类型示例
return upload_fail(message='Image only!') # 返回upload_fail调用
f.save(os.path.join('/the/uploaded/directory', f.filename))
url = url_for('uploaded_files', filename=f.filename)
return upload_success(url=url) # 返回upload_success调用复制代码
注意 传入request.files.get()的键必须为'upload', 这是CKEditor定义的上传字段name值。
提示 对应的示例程序在 examples/image-upload/目录下。
<head>
...
{{ ckeditor.load_code_theme() }}
</head>复制代码
提示 对应的示例程序在 examples/codesnippet/目录下。
$ git clone https://github.com/greyli/flask-ckeditor
$ cd flask-ckeditor/examples
$ pip install -r requirements.txt
$ python basic/app.py复制代码
另外,helloflask仓库里在demos/form
目录下的示例程序也包含一个Flask-Dropzone使用示例。
html