亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Django如何實現圖片上傳和顯示

發布時間:2021-05-06 09:51:42 來源:億速云 閱讀:287 作者:小新 欄目:開發技術

小編給大家分享一下Django如何實現圖片上傳和顯示,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

第1章 新建工程和創建app

新建工程和創建app就不用貼出來了,我這里是測試圖片上傳的功能能否實現,所以項目都是新的,正常在以有的app下就可以

第2章 模型層:

2.1創建數據庫

from django.dbimport models

# Create your models here.
class User(models.Model):
  name= models.CharField(max_length=50)
  # upload_to 指定上傳文件位置
  # 這里指定存放在img/ 目錄下
  headimg = models.FileField(upload_to="img/")

  # 返回名稱
  def__str__(self):
    returnself.name

2.2初始化數據庫:

(mypy3) ? BBS python manage.py makemigrations

Migrations for 'app01':

 app01/migrations/0001_initial.py

  - Create model User

(mypy3) ? BBS python manage.py migrate    

Operations to perform:

 Apply all migrations: admin, app01, auth, contenttypes, sessions

第3章 修改配置文件

3.1settings中增加如下配置:

MEDIA_ROOT= os.path.join(BASE_DIR, 'media').replace("\\", "/")
MEDIA_URL = '/media/'

3.2工程的urls文件:

from django.conf.urlsimport url
from django.contrib import admin
from django.urls import path, include
from django.conf.urls.static import static
from django.conf import settings

urlpatterns = [
  url(r'^admin/', admin.site.urls),
  # url(r'^regsiter/', views.regsiter),
  # url(r'', TemplateView.as_view(template_name="app01/index.html")),
  path('app01/', include('app01.urls'))
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

3.3app:

from django.urlsimport path
from . import views

app_name = 'app01'
urlpatterns = [
  path('add/', views.add, name='add'),
  # path('index/', views.index, name='index'),
]

3.4修改模版配置:

TEMPLATES= [
  {
    'BACKEND': 'django.template.backends.django.DjangoTemplates',
    'DIRS': [os.path.join(BASE_DIR, 'templates')],
    'APP_DIRS': True,
    'OPTIONS': {
      'context_processors': [
        'django.template.context_processors.debug',
        'django.template.context_processors.request',
        'django.contrib.auth.context_processors.auth',
        'django.contrib.messages.context_processors.messages',
      ],
    },
  },
]

第4章 數據校驗模塊:

數據需要校驗的情況下,如果你不想校驗,這個可以忽略

4.1在app下創建forms文件:

from django import forms

# 表單類用以生成表單
class AddForm(forms.Form):
  name = forms.CharField()
  headimg = forms.FileField()

第5章 視圖層:

5.1編寫圖片處理邏輯

from django.shortcutsimport render
from .models import User
from .forms import AddForm

# Create your views here.
def add(request):
  # 判斷是否為post 方法提交
  ifrequest.method == "POST":
    af = AddForm(request.POST, request.FILES)
    # 判斷表單值是否和法
    ifaf.is_valid():
      name = af.cleaned_data['name']
      headimg = af.cleaned_data['headimg']
      user = User(name=name, headimg=headimg)
      user.save()
      returnrender(request, 'app01/index.html', context={"user":user})
  else:
    af = AddForm()
    returnrender(request, 'app01/add.html', context={"af":af})

第6章 模版層:

上傳的html

<!-- templates/users/add.html -->
<!doctype html>
<html>
<head>
  <title>Add</title>
  <meta charset="utf-8">
</head>
<body>
  <h2>Add!</h2>

  <form method="post" enctype="multipart/form-data" action="{% url'app01:add' %}">
    {%csrf_token %}
    {{ af.as_p }}
    <inputtype="submit" value="OK"/>
  </form>
</body>
</html>

查看的html

<!-- templates/users/index.html -->
<!doctype html>
<html>
<head>
  <title>Detail</title>
  <meta charset="utf-8">
</head>
<body>
  <p>{{user.name}}</p>
  <img width="50%" height="50%"src="/media/{{ user.headimg }}">
</body>
</html>

看完了這篇文章,相信你對“Django如何實現圖片上傳和顯示”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

金山区| 鹤岗市| 礼泉县| 富源县| 宿迁市| 西华县| 新津县| 衢州市| 无锡市| 定日县| 麻栗坡县| 崇信县| 军事| 海林市| 抚州市| 山阴县| 南部县| 湾仔区| 江安县| 丽江市| 池州市| 同仁县| 安平县| 离岛区| 潜山县| 雅江县| 台北市| 洪洞县| 永泰县| 信丰县| 鹤峰县| 雷山县| 五指山市| 厦门市| 阜阳市| 金寨县| 修水县| 新泰市| 汤阴县| 南靖县| 南宫市|