Django 프로젝트 실용 사용자 아바타 업로드 및 접속
이 글에서는 Django 프로젝트에서 사용자 아바타를 업로드하고 접근하는 실제 사례를 주로 소개하고 참고하겠습니다. 함께 살펴볼까요
1 파일을 서버에 로컬로 저장
upload.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> </head> <body> <form action="" method="post" enctype="multipart/form-data"> {% csrf_token %} <p>用户名:<input type="text" name="username"></p> <p>头像<input type="file" name="avatar"></p> <input type="submit" value="提交"> </form> </body> </html>
urls.py
from django.conf.urls import url from app01 import views urlpatterns = [ url(r'^upload',views.upload) ]
views.py
요약
이런 방식으로 파일 업로드에 대한 기본적인 작은 예를 만들었습니다. 여기서 주의할 점이 몇 가지 있습니다.
1. csrf_token 확인을 양식에 추가해야 합니다.
2. 유형 파일의 입력 상자 값은 file
3. 보기 함수에서 파일을 얻으려면 request.FILES.get() 메소드를 사용하십시오
4. 파일 이름은 obj.name을 통해 얻을 수 있습니다
2 파일을 데이터베이스
models.py
from django.shortcuts import render,HttpResponse def upload(request): if request.method == 'POST': name = request.POST.get('username') avatar = request.FILES.get('avatar') with open(avatar.name,'wb') as f: for line in avatar: f.write(line) return HttpResponse('ok') return render(request,'upload.html')
views.py
from django.db import models class User(models.Model): username = models.CharField(max_length=16) avatar = models.FileField(upload_to='avatar')
Summary
데이터베이스에 파일을 업로드하는 기능이 변경되었습니다. 위에서 구현한 몇 가지 참고 사항이 있습니다.
1. 소위 데이터베이스에 업로드한다는 것은 이미지 자체나 바이너리 코드를 데이터베이스에 저장하는 것을 의미하지 않습니다. 데이터베이스는 파일의 경로만 저장하므로 사용자가 파일을 호출하려고 할 때 경로를 사용하여 서버에서 지정한 위치를 찾을 수 있습니다.
2. ORM을 생성할 때 아바타 필드에는 upload_to=가 있어야 합니다. 업로드된 파일을 저장할 위치를 지정하는 '' 속성
3. 데이터베이스에 추가할 때 파일 필드 속성 할당은 다음과 같이 일반 필드와 동일한 형식입니다: models.User.objects.create(username=name, avatar=avatar)
4. 두 사용자가 업로드한 파일 이름이 동일할 경우 시스템이 자동으로 파일 이름을 변경하며 그 효과는 다음과 같습니다.
추가
기능을 구현했습니다. .파일을 호출할 때 데이터베이스 파일 경로를 통해 저장된 파일 자체를 통해서만 이미지에 액세스하여 웹 페이지에 나타나도록 하면 되는 것 같습니다.
뭔가 구성이 필요합니다. 그렇지 않으면 django가 URL 확인에 실패하게 됩니다. 우리가 정적으로 정적 파일에 직접 액세스할 수 있는 이유는 django가 이미 이를 구성했기 때문입니다.
구성 단계는 다음과 같습니다.
1. urls.py에서
def upload(request): if request.method == 'POST': name = request.POST.get('username') avatar = request.FILES.get('avatar') models.User.objects.create(username=name,avatar=avatar) return HttpResponse('ok') return render(request,'upload.html')
을 구성합니다. 사이트의 settings.py 구성 후 , http://127.0.0.1:8001/media/milk.png를 통해 이미지에 액세스할 수 있습니다.
upload.html
MEDIA_ROOT=os.path.join(BASE_DIR,"blog","media") #blog是项目名,media是约定成俗的文件夹名 MEDIA_URL="/media/" # 跟STATIC_URL类似,指定用户可以通过这个路径找到文件
views.py
from django.views.static import serve from upload import settings #upload是站点名 url(r'^media/(?P<path>.*)$', serve, {'document_root': settings.MEDIA_ROOT}),
Summary
1. Ajax 업로드 시 버튼 입력 시 submit을 사용하면 안 됩니다. 2. Ajax 업로드 시 data 매개변수의 값은 더 이상 일반적인 '사전' 유형 값이 아닙니다. , 그러나 FormData 개체입니다
Create 개체 formdata = new FormData()
값 추가 formdata.append('username',$('#name-input').val()) ;
3.Ajax는 게시물 제출 시 csrf 확인을 추가해야 합니다
formdata.append("csrfmiddlewaretoken",$("[name='csrfmiddlewaretoken']").val());
4. 마지막으로 Ajax를 통해 파일을 업로드할 때 두 가지 매개변수 설정이 있습니다
processData:false
contentType:false
- 4 이미지 파일 업로드 시 미리보기 기능이 있습니다
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> </head> <body> <form> {% csrf_token %} <p>用户名:<input id="name-input" type="text"></p> <p>头像<input id="avatar-input" type="file"></p> <input id="submit-btn" type="button" value="提交"> </form> <script src="/static/js/jquery-3.2.1.min.js"></script> <script> $('#submit-btn').on('click',function () { formdata = new FormData(); formdata.append('username',$('#name-input').val()); formdata.append("avatar",$("#avatar")[0].files[0]); formdata.append("csrfmiddlewaretoken",$("[name='csrfmiddlewaretoken']").val()); $.ajax({ processData:false,contentType:false,url:'/upload', type:'post', data:formdata,success:function (arg) { if (arg.state == 1){ alert('成功!') } else { alert('失败!') } } }) }); </script> </body> </html>
5 요약
어떻게 요청 가중치의 ContentType 매개변수를 통해 브라우저에 알리려면 기본값인
이 있으므로 일반 문자열을 업로드할 때 이를 지정할 필요가 없습니다. 그리고 파일을 전송하려면 다음을 수행해야 합니다. 별도로 지정하세요. 다음 사항을 요약하면
2. ajax를 통해 업로드할 경우 processData:false 및 contentType:false를 통해 ContentType을 지정하세요.
3. 업로드 시 form에서 파일 데이터는 태그를 통해 '래핑'됩니다.
5. 데이터가 전달된 후에는 request.POST
대신 request.FILES에 캡슐화됩니다. 관련 권장 사항:
Django가 CSS 및 js 파일과 정적 이미지를 로드하는 방법
Django 컨트롤 사용 및 매개변수 전달에 대한 자세한 설명
위 내용은 Django 프로젝트 실용 사용자 아바타 업로드 및 접속의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











소셜 미디어의 급속한 발전으로 Xiaohongshu는 가장 인기 있는 소셜 플랫폼 중 하나가 되었습니다. 사용자는 Xiaohongshu 계정을 만들어 자신의 개인 신원을 표시하고 다른 사용자와 소통하고 상호 작용할 수 있습니다. 사용자의 Xiaohongshu 번호를 찾으려면 다음의 간단한 단계를 따르세요. 1. Xiaohongshu 계정을 사용하여 사용자를 찾는 방법은 무엇입니까? 1. Xiaohongshu 앱을 열고 오른쪽 하단에 있는 "검색" 버튼을 클릭한 다음 "메모" 옵션을 선택합니다. 2. 노트 목록에서 찾고자 하는 사용자가 게시한 노트를 찾아보세요. 클릭하시면 메모 세부정보 페이지로 이동합니다. 3. 노트 상세페이지에서 해당 사용자의 아바타 아래 '팔로우' 버튼을 클릭하여 해당 사용자의 개인 홈페이지로 진입합니다. 4. 이용자 개인 홈페이지 우측 상단의 점 3개 버튼 클릭 후 '개인정보' 선택

Ubuntu 시스템에서는 루트 사용자가 일반적으로 비활성화되어 있습니다. 루트 사용자를 활성화하려면 passwd 명령을 사용하여 비밀번호를 설정한 다음 su- 명령을 사용하여 루트로 로그인할 수 있습니다. 루트 사용자는 무제한 시스템 관리 권한을 가진 사용자입니다. 그는 파일, 사용자 관리, 소프트웨어 설치 및 제거, 시스템 구성 변경에 액세스하고 수정할 수 있는 권한을 가지고 있습니다. 루트 사용자와 일반 사용자 사이에는 분명한 차이가 있습니다. 루트 사용자는 시스템에서 가장 높은 권한과 더 넓은 제어 권한을 갖습니다. 루트 사용자는 일반 사용자가 할 수 없는 중요한 시스템 명령을 실행하고 시스템 파일을 편집할 수 있습니다. 이 가이드에서는 Ubuntu 루트 사용자, 루트로 로그인하는 방법, 일반 사용자와 어떻게 다른지 살펴보겠습니다. 알아채다

sudo(수퍼유저 실행)는 일반 사용자가 루트 권한으로 특정 명령을 실행할 수 있도록 하는 Linux 및 Unix 시스템의 핵심 명령입니다. sudo의 기능은 주로 다음 측면에 반영됩니다. 권한 제어 제공: sudo는 사용자에게 일시적으로 수퍼유저 권한을 얻을 수 있는 권한을 부여하여 시스템 리소스와 민감한 작업을 엄격하게 제어합니다. 일반 사용자는 필요할 때만 sudo를 통해 임시 권한을 얻을 수 있으며, 항상 슈퍼유저로 로그인할 필요는 없습니다. 향상된 보안: sudo를 사용하면 일상적인 작업 중에 루트 계정을 사용하지 않아도 됩니다. 모든 작업에 루트 계정을 사용하면 올바르지 않거나 부주의한 작업에는 전체 권한이 부여되므로 예기치 않은 시스템 손상이 발생할 수 있습니다. 그리고

Django와 Flask는 모두 Python 웹 프레임워크의 리더이며 둘 다 고유한 장점과 적용 가능한 시나리오를 가지고 있습니다. 이 기사에서는 이 두 프레임워크를 비교 분석하고 구체적인 코드 예제를 제공합니다. 개발 소개 Django는 모든 기능을 갖춘 웹 프레임워크이며, 주요 목적은 복잡한 웹 애플리케이션을 신속하게 개발하는 것입니다. Django는 ORM(Object Relational Mapping), 양식, 인증, 관리 백엔드 등과 같은 다양한 내장 기능을 제공합니다. 이러한 기능을 통해 Django는 대규모 처리를 수행할 수 있습니다.

Django는 웹 개발 라이프사이클의 모든 측면을 포괄하는 완전한 개발 프레임워크입니다. 현재 이 프레임워크는 전 세계적으로 가장 인기 있는 웹 프레임워크 중 하나입니다. Django를 사용하여 자신만의 웹 애플리케이션을 구축하려는 경우 Django 프레임워크의 장점과 단점을 이해해야 합니다. 특정 코드 예제를 포함하여 알아야 할 모든 것이 여기에 있습니다. Django의 장점: 1. 빠른 개발 - Djang은 웹 애플리케이션을 빠르게 개발할 수 있습니다. 풍부한 라이브러리와 내부 기능을 제공합니다.

Linux 시스템의 사용자 비밀번호 저장 메커니즘 분석 Linux 시스템에서 사용자 비밀번호 저장은 매우 중요한 보안 메커니즘 중 하나입니다. 이 기사에서는 암호화된 비밀번호 저장, 비밀번호 확인 프로세스, 사용자 비밀번호를 안전하게 관리하는 방법을 포함하여 Linux 시스템의 사용자 비밀번호 저장 메커니즘을 분석합니다. 동시에 특정 코드 예제를 사용하여 비밀번호 저장의 실제 작업 프로세스를 보여줍니다. 1. 비밀번호의 암호화된 저장 Linux 시스템에서 사용자 비밀번호는 시스템에 일반 텍스트로 저장되지 않고 암호화되어 저장됩니다. 엘

win10 계정을 등록한 후 많은 친구들이 자신의 기본 아바타가 별로 좋지 않다고 생각합니다. 이러한 이유로 아바타를 변경하고 싶어합니다. 알고 싶다면 아바타를 변경하는 방법에 대한 튜토리얼을 참조하세요. 와서 좀 보세요. win10 계정 이름과 아바타를 변경하는 방법: 1. 먼저 왼쪽 하단 모서리를 클릭하여 시작합니다. 2. 팝업 메뉴에서 위의 아바타를 클릭하세요. 3. 입력 후 '계정 설정 변경'을 클릭하세요. 4. 그런 다음 아바타 아래의 "찾아보기"를 클릭하세요. 5. 아바타로 사용하고 싶은 사진을 찾아 선택하세요. 6. 드디어 수정이 성공적으로 완료되었습니다.

Django 버전 업그레이드 방법: 단계 및 고려 사항, 필요한 특정 코드 예제 소개: Django는 더 나은 성능과 더 많은 기능을 제공하기 위해 지속적으로 업데이트되고 업그레이드되는 강력한 Python 웹 프레임워크입니다. 그러나 이전 버전의 Django를 사용하는 개발자의 경우 Django를 업그레이드하는 데 몇 가지 어려움이 있을 수 있습니다. 이 글에서는 Django 버전을 업그레이드하는 방법에 대한 단계와 주의 사항을 소개하고 구체적인 코드 예제를 제공합니다. 1. Djan을 업그레이드하기 전에 프로젝트 파일을 백업하세요.
