《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