文件上传
form.FileField() #用于手动编写
model.FileFileld(upload_to ='' )#用在自动保存上传文件
- 首先进行上传路径的设置
settings.py:
MEDIA_ROOT = os.path.join(BASE_DIR, 'upload') #文件路径不是绝对路径是项目路径
MEDIA_URL = '/upload/'
- 配置urls.py:
urlpatterns = [
url(r'^admin/', admin.site.urls),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
- 我们在创建表单对象的时候代码从#1变成#2
form = StudentForm(request.POST)#1
form = StudentForm(request.POST, request.FILES)#2
- 表单设置
<form action="addStudent2" method="post" ENCTYPE="multipart/form-data">
- models设置
imgPath = models.FileField(verbose_name='头像', null=True, upload_to='student')
表单模型的.save()可以直接进行保存,把文件保存到指定路径,把地址保存到数据库
if form.is_valid():
form.save()
print(stu.imgPath)
Django 静态资源配置
- 配置静态文件
我们在web开发中要用到CSS等文件,在Django中要想调用这些文件,就需要配置一个静态文件夹。
首先是settings.py:
STATICFILE_DIR=(
os.path.join(BASE_DIR, 'static')
)
STATIC_URL = '/static/'
- 然后是urls.py
urlpatterns = [
url(r'^admin/', admin.site.urls),
] + static(settings.STATIC_URL, document_root=settings.STATICFILE_DIR)
- 配置静态文件和文件上传路径都需要导入两个模块
from django.conf import settings
from django.conf.urls.static import static