零碎示例整理

weixin_34321977發表於2017-06-29

記錄一些遇到的坎,為自己為他人

File 讀取Image 不儲存

File讀取PIL.Image,但不儲存到本地。

業務場景:生成圖片後儲存在資料庫中,如果生成的圖片儲存在本地再儲存到資料庫的話會存在兩張圖,因此要求讀取Image後儲存。

而網上都是Image.open(file_path) Image讀取File和img.save(file_name, format)儲存到本地的例子。

解決方案:

from io import  BytesIO

output = BytesIO()
img.save(output, 'PNG')
django_file = File(output)

img.save第二個引數 format對應圖片格式,不加會拋異常。


模板校驗後提交Form表單

業務場景: Form表單需要校驗,如果校驗通過提交Form,否則彈出提示資訊。

解決方案: Form 新增onsubmit事件,繫結返回布林值的方法(返回false阻止提交,返回true自動提交),順便提一句,後臺校驗還是很有必要的,Django也提供了解決方案

    <form id="form" method="post" action="..." onsubmit="return submit_post()">.......</form>

    function submit_post(){
        var name = $('.input').val(); // 獲取輸入框內容
        if(name === undefined || name.length < 2){
            // 輸入值長度小於2提示使用者
            alert('Please enter the correct user name');
            return false;
        }
        $('.form').submit();
        return true;
    }

參考:[How do I stop form from automatically submitting? (Django/jQuery)]
(https://stackoverflow.com/a/21367360/8258566)


相關文章