1. <ul id="0c1fb"></ul>

      <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
      <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区

      RELATEED CONSULTING
      相關(guān)咨詢
      選擇下列產(chǎn)品馬上在線溝通
      服務(wù)時(shí)間:8:30-17:00
      你可能遇到了下面的問題
      關(guān)閉右側(cè)工具欄

      新聞中心

      這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
      Django框架如何實(shí)現(xiàn)文件上傳與自定義圖片上傳路徑、上傳文件名操作-創(chuàng)新互聯(lián)

      這篇文章主要介紹Django框架如何實(shí)現(xiàn)文件上傳與自定義圖片上傳路徑、上傳文件名操作,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

      創(chuàng)新互聯(lián)建站服務(wù)項(xiàng)目包括瑯琊網(wǎng)站建設(shè)、瑯琊網(wǎng)站制作、瑯琊網(wǎng)頁制作以及瑯琊網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,瑯琊網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到瑯琊省份的部分城市,未來相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!

      具體如下:

      文件上傳

      1、創(chuàng)建上傳文件夾

      在static文件夾下創(chuàng)建uploads用于存儲(chǔ)接收上傳的文件

      在settings中配置,

      MEDIA_ROOT=os.path.join(BASE_DIR,r'static/uploads')

      2、定義上傳表單

      文件數(shù)據(jù)存儲(chǔ)在request.FILES屬性中

      文件上傳必須使用POST請(qǐng)求方式

      
       {% csrf_token %}
       
       
      

      3、手動(dòng)存儲(chǔ)文件

      存儲(chǔ)到關(guān)聯(lián)用戶的表字段中

      def savefIcon(request):
      if request.method == 'POST'
       f = request.FILES['icon']
       filePath = os.path.join(settings.MEDIA_ROOT,f.name)
       with open(filePath,'wb') as fp:
        for part in f.chunks():
         fp.write(part)

      4、django內(nèi)置存儲(chǔ)

      • ImageField

        • 要導(dǎo)入pillow模塊

      • FileField

      • 從request.FILES將文件獲取出來,直接賦值給字段

      • 存儲(chǔ)的時(shí)候,數(shù)據(jù)庫存儲(chǔ)的是路徑

      • 存儲(chǔ)在MEDIA_ROOT

      自定義圖片上傳路徑和上傳文件名

      圖片上傳中,如果不對(duì)上傳的文件名做處理,很容易引起文件名重復(fù),這會(huì)覆蓋之前上傳的圖片,django提供了自定義上傳文件名的方法。

      def generate_filename(self, instance, filename):
       """
       Apply (if callable) or prepend (if a string) upload_to to the filename,
       then delegate further processing of the name to the storage backend.
       Until the storage layer, all file paths are expected to be Unix style
       (with forward slashes).
       """
       if callable(self.upload_to):
        filename = self.upload_to(instance, filename)
       else:
        dirname = datetime.datetime.now().strftime(self.upload_to)
        filename = posixpath.join(dirname, filename)
       return self.storage.generate_filename(filename)

      上面的代碼是django中對(duì)ImageField上傳時(shí),生成文件名的處理方式。如果 upload_to 的參數(shù)是可調(diào)用的,則直接調(diào)用來生成文件名(包括靜態(tài)文件夾后的文件路徑)。要自定義上傳文件名就從這里著手。

      import uuid
      from django.db import models
      def image_upload_to(instance, filename):
       return 'original_image/{uuid}/{filename}'.format(uuid=uuid.uuid4().hex, filename=filename)
      class TestImageUpload(models.Model):
       image = models.ImageField(upload_to=image_upload_to)

      按照上面的方式,就可以按照自己的意愿隨意的處理文件名了(函數(shù)的參數(shù)個(gè)數(shù)是固定的)。

      以上是“Django框架如何實(shí)現(xiàn)文件上傳與自定義圖片上傳路徑、上傳文件名操作”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!


      分享題目:Django框架如何實(shí)現(xiàn)文件上傳與自定義圖片上傳路徑、上傳文件名操作-創(chuàng)新互聯(lián)
      URL鏈接:http://ef60e0e.cn/article/ceejos.html
      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区
      1. <ul id="0c1fb"></ul>

        <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
        <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

        平泉县| 喀喇沁旗| 黑山县| 阿巴嘎旗| 正镶白旗| 嘉善县| 申扎县| 曲水县| 新田县| 当涂县| 霞浦县| 万宁市| 青田县| 江永县| 黑水县| 石狮市| 曲麻莱县| 安福县| 柘城县| 大方县| 邵东县| 咸宁市| 弥勒县| 西林县| 赣榆县| 嘉荫县| 娄底市| 东乡县| 山阳县| 海原县| 新民市| 格尔木市| 嘉兴市| 阿克| 阜宁县| 河南省| 洛南县| 酉阳| 霍邱县| 尚义县| 阿拉尔市|