扣丁学堂Python培训简述Django项目实战如何上传访问用户头像

2018-06-27 14:37:32 471浏览

本篇文章扣丁学堂Python培训小编和读者们分享一下Django项目实战如何上传访问用户头像,喜欢Python的小伙伴随小编一起来了解一下吧。


扣丁学堂Python培训简述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 %}
  <div>用户名:<input type="text" name="username"></div>
  <div>头像<input type="file" name="avatar"></div>
  <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


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')


总结:


这样,我们就做好了一个基本的文件上传小示例,这里需要注意的有几点:


 1、form表单里需要加上csrf_token验证


 2、文件的input框的type的值为file


 3、在视图函数中获取文件要用request.FILES.get()方法


 4、通过obj.name可以获取文件的名字



2、将文件上传到数据库


models.py


from django.db import models
 class User(models.Model):
  username = models.CharField(max_length=16)
  avatar = models.FileField(upload_to='avatar')


views.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')


总结:

上面已经实现了将文件上传到数据库的功能,需要注意的有几点:


 1、所谓的上传到数据库,不是讲图片本身或者二进制码放在数据库,实际上也是将文件上传到服务器本地,数据库只是存了一个文件的路径,这样用户要调用文件的时候就可以通过路径去服务器指定的位置找了。


 2、创建ORM的时候,avatar字段要有一个upload_to=''的属性,指定上传后的文件放在哪里。


 3、往数据库添加的时候,文件字段属性赋值跟普通字段在形式上是一样的。


 4、如果有两个用户上传的文件名重复,系统会自动将文件改名。



以上就是扣丁学堂Python在线学习小编给大家分享的Django项目实战如何上传访问用户头像的示例,希望能帮到更多的小伙伴了解Python开发技术,想要了解更多内容的小伙伴可以登录扣丁学堂官网咨询。扣丁学堂是专业的Python培训机构,不仅有专业的老师和与时俱进的课程体系,还有大量的Python在线教程供学员观看学习哦。扣丁学堂Python技术交流群:279521237。


扣丁学堂微信公众号

关注微信公众号获取更多学习资料



查看更多关于"Python开发资讯"的相关文章>




标签: 扣丁学堂Python培训 Django项目实战如何上传访问用户头像 Python培训 Python视频教程 Python基础教程 python安装教程 Python核心编程 Python在线教程 Python在线视频 Python在线学习

热门专区

暂无热门资讯

课程推荐

微信
微博
15311698296

全国免费咨询热线

邮箱:codingke@1000phone.com

官方群:148715490

北京千锋互联科技有限公司版权所有   北京市海淀区宝盛北里西区28号中关村智诚科创大厦4层
京ICP备12003911号-6   Copyright © 2013 - 2019

京公网安备 11010802030908号