亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

python中Django文件上傳方法詳解

 更新時(shí)間:2020年08月05日 07:53:11   作者:愛喝馬黛茶的安東尼  
在本篇文章里小編給大家整理了一篇關(guān)于python中Django文件上傳方法,有興趣的朋友們可以學(xué)習(xí)下。

Django上傳文件最簡單最官方的方法

1.配置media路徑

在settings.py中添加如下代碼:

MEDIA_ROOT = os.path.join(BASE_DIR, 'media')

2.定義數(shù)據(jù)表

import os
from django.db import models
from django.utils.timezone import now as timezone_now
def upload_to(instance, filename):
    now = timezone_now()
    base, ext = os.path.splitext(filename)
    ext = ext.lower()
    return f'quotes/{now:%Y/%m/%Y%m%d%H%M%S}{ext}'
class Quote(models.Model):
    class Meta:
        verbose_name = 'quote'
        verbose_name_plural = verbose_name
    author = models.CharField('author', max_length=200)
    quote = models.TextField('quote')
    picture = models.ImageField('picture', upload_to=upload_to, blank=True, null=True)
    def __str__(self):
        return self.quote

這里的upload_to函數(shù)會自動把文件的名稱修改為日期型的名稱,不會重名。

相關(guān)推薦:《Python視頻教程》

zz.png

3.添加form表單

forms.py文件

from django import forms
from .models import Quote
class QuoteForm(forms.ModelForm):
    class Meta:
        model = Quote
        fields = '__all__'

4.編寫視圖代碼

from django.shortcuts import render, redirect
from .forms import QuoteForm
def add_quote(request):
    form = QuoteForm()
    if request.method == 'POST':
        form = QuoteForm(
            data=request.POST,
            files=request.FILES
        )
        if form.is_valid():
            form.save()
            return redirect('quote:add_quote')
    else:
        return render(request, 'quotes/add_quote.html', {
            'form': form
        })

5.編寫模板html代碼

<form action="{% url 'quote:add_quote' %}" method="post" enctype="multipart/form-data">
    {% csrf_token %}
    {{ form.as_p }}
    <button type="submit">save</button>
</form>

6.添加url映射

在app的目錄的urls.py添加
from django.urls import path
from quotes.views import add_quote
app_name = 'quote'
urlpatterns = [
    path('add/', add_quote, name='add_quote')
]

在項(xiàng)目目錄的urls.py文件添加

from django.urls import path, include
urlpatterns = [
    path('quotes/', include('quotes.urls', namespace='quote'))
]

效果圖

xx.png

知識點(diǎn)擴(kuò)展:

最簡單的文件下載功能的實(shí)現(xiàn)

將文件流放入HttpResponse對象即可,如

def file_download(request):
 # do something...
 with open('file_name.txt') as f:
  c = f.read()
 return HttpResponse(c)

到此這篇關(guān)于python中Django文件上傳方法詳解的文章就介紹到這了,更多相關(guān)Django文件上傳方法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python?裝飾器(Decorators)原理說明及操作代碼

    python?裝飾器(Decorators)原理說明及操作代碼

    裝飾器(Decorators)是 Python 的一個(gè)重要部分,本文由淺入深給大家介紹了python?裝飾器Decorators原理,感興趣的朋友跟隨小編一起看看吧
    2021-12-12
  • Python通過kerberos安全認(rèn)證操作kafka方式

    Python通過kerberos安全認(rèn)證操作kafka方式

    這篇文章主要介紹了Python通過kerberos安全認(rèn)證操作kafka方式,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • Python語言實(shí)現(xiàn)獲取主機(jī)名根據(jù)端口殺死進(jìn)程

    Python語言實(shí)現(xiàn)獲取主機(jī)名根據(jù)端口殺死進(jìn)程

    這篇文章主要介紹了Python語言實(shí)現(xiàn)獲取主機(jī)名根據(jù)端口殺死進(jìn)程的相關(guān)資料,需要的朋友可以參考下
    2016-03-03
  • python自動化生成ppt的實(shí)現(xiàn)代碼

    python自動化生成ppt的實(shí)現(xiàn)代碼

    在這篇博客中,我們將探討如何使用Python庫`python-pptx`來創(chuàng)建一個(gè)簡單的PowerPoint演示文稿(PPT),這個(gè)庫允許我們以編程方式創(chuàng)建幻燈片、添加文本、圖片、表格和自定義形狀,需要的朋友可以參考下
    2024-04-04
  • Python+Tkinter實(shí)現(xiàn)股票K線圖的繪制

    Python+Tkinter實(shí)現(xiàn)股票K線圖的繪制

    K線圖又稱蠟燭圖,常用說法是“K線”。K線是以每個(gè)分析周期的開盤價(jià)、最高價(jià)、最低價(jià)和收盤價(jià)繪制而成。本文將利用Python+Tkinter實(shí)現(xiàn)股票K線圖的繪制,需要的可以參考一下
    2022-08-08
  • Python利用psutil實(shí)現(xiàn)獲取硬件,網(wǎng)絡(luò)和進(jìn)程信息

    Python利用psutil實(shí)現(xiàn)獲取硬件,網(wǎng)絡(luò)和進(jìn)程信息

    Python?有一個(gè)第三方模塊叫?psutil,專門用來獲取操作系統(tǒng)以及硬件相關(guān)的信息,比如:CPU、磁盤、網(wǎng)絡(luò)、內(nèi)存等等。下面來看一下它的用法
    2022-07-07
  • python3?queue多線程通信

    python3?queue多線程通信

    這篇文章主要介紹了python3?queue多線程通信,??Queue???對象已經(jīng)包含了必要的鎖,所以你可以通過它在多個(gè)線程間多安全地共享數(shù)據(jù),更多相關(guān)內(nèi)容需要的朋友可以參考一下下文文章內(nèi)容
    2022-07-07
  • 基于BCEWithLogitsLoss樣本不均衡的處理方案

    基于BCEWithLogitsLoss樣本不均衡的處理方案

    這篇文章主要介紹了BCEWithLogitsLoss樣本不均衡的處理方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • 詳解Python?AdaBoost算法的實(shí)現(xiàn)

    詳解Python?AdaBoost算法的實(shí)現(xiàn)

    Boosting是機(jī)器學(xué)習(xí)的三大框架之一。Boost也被稱為增強(qiáng)學(xué)習(xí)或提升法,其中典型的代表算法是AdaBoost算法。本文介紹了AdaBoost算法及python實(shí)現(xiàn),感興趣的可以學(xué)習(xí)一下
    2022-10-10
  • Django中使用Celery的教程詳解

    Django中使用Celery的教程詳解

    Django是一個(gè)開放源代碼的Web應(yīng)用框架,由Python寫成,Celery是一個(gè)基于python開發(fā)的分布式任務(wù)隊(duì)列。這篇文章主要介紹了Django中使用Celery教程,需要的朋友可以參考下
    2018-08-08

最新評論