Django文件上传
发布日期:2021-05-06 22:01:54 浏览次数:21 分类:精选文章

本文共 2052 字,大约阅读时间需要 6 分钟。

参考 自强学堂

风之清扬

  1. 创建
django-admin.py startproject Django_Uploaddjango-admin.py startapp Upload
  1. ,注意这里的upload_to指向了MEDIA_ROOT,
    这个MEDIA_ROOT需要在settings.py中配置
#coding=utf-8from __future__ import unicode_literalsfrom django.db import modelsclass NormalUser(models.Model):    username=models.CharField('用户名',max_length=30)    #用户名    headImg=models.FileField('文件',upload_to='./')#文件名    def __str__(self):        return self.username    class Meta:        ordering=['username']#排序风格username
  1. 在settings.py添加如下定义
MEDIA_URL = '/media/'MEDIA_ROOT = os.path.join(BASE_DIR, 'Upload/upload')
  1. 数据库同步
Python manage.py makemigrationspython manage.py migrate
#coding=utf-8from django.shortcuts import render,render_to_responsefrom django import formsfrom django.http import HttpResponsefrom blog.models import *# Create your views here.class NormalUserForm(forms.Form):    #form的定义和model类的定义很像    username=forms.CharField()    headImg=forms.FileField()#在View中使用已定义的Form方法def registerNormalUser(request):    #刚显示时调用GET方法    if request.method=="POST":        uf = NormalUserForm(request.POST,request.FILES)#刚显示时,实例化表单(是否有数据)        if uf.is_valid():#验证数据是否合法,当合法时可以使用cleaned_data属性。            #用来得到经过'clean'格式化的数据,会所提交过来的数据转化成合适的Python的类型。            username = uf.cleaned_data['username']            headImg = uf.cleaned_data['headImg']            #write in database            normalUser=NormalUser()#实例化NormalUser对象            normalUser.username = username            normalUser.headImg = headImg            normalUser.save()#保存到数据库表中            return HttpResponse('Upload Succeed!')#重定向显示内容(跳转后内容)    else:        uf=NormalUserForm()#刚显示时,实例化空表单    return render(request,'register.html',{   'uf':uf})#只有刚显示时才起作用
from django.contrib import adminfrom django.urls import pathfrom Upload.views import *urlpatterns = [    path('register/', registerNormalUser),    path('admin/', admin.site.urls),]
  1. 添加templates/register.html
    
Register

Register

{% csrf_token %} { { uf.as_p }}
  1. 输入以下命令:python runserver运行服务器
    登录http://127.0.0.1:8000/register/查看效果
上一篇:Python socket TCP 多客户端 多线程通信
下一篇:Django 个人博客

发表评论

最新留言

做的很好,不错不错
[***.243.131.199]2025年04月05日 02时07分04秒