django学习笔记---文件上传,用户认证,单选框,复选框接受
2018-03-04 13:55
1016 查看
url.py
urlpatterns = [ url(r'^admin/', admin.site.urls), url('login/',views.login), ]
view.py
def login(request): # """ #麻烦的方法 # f = open('templates/login.html', 'r', encoding='utf-8') # data = f.read() # f.close() # return HttpResponse(data) error_msg = "" if request.method == "POST": name = request.POST.get('user', None) pwd = request.POST.get('pwd', None) # print(name,pwd) # 获取单选框直接用get就可以。获取复选框的值,用到getlist # gender = request.POST.get('gender') # favor = request.POST.getlist('favor') #用getlist就能获取多选框的内容,如checkbox和select # city = request.POST.getlist('city') # print(city) # 获取文件 obj = request.FILES.get('f1') print(obj.name, type(obj),obj) # 比如网页端上传debug,log文件时输出 debug.log <class 'django.core.files.uploadedfile.InMemoryUploadedFile'> debug.log # print(obj)和print(obj.name) 虽然结果一样, 4000 但是obj是对象,里面有__str__方法,所以会输出你上传的文件名。所以下面新建文件名的时候要用obj.name ''' 开始上传的文件是一点一点上传的,接收也是一点一点迭代接收的。(所以在uploadedfile.py中就是用yeild来迭代接收的 def chunks(self, chunk_size=None): self.file.seek(0) yield self.read() # 此句调用uploadfile.py from django.core.files.uploadedfile import InMemoryUploadedFile ''' # 接下来迭代接收文件 file_name = os.path.join('upload', obj.name) with open(file_name, 'wb') as fb: for line in obj.chunks(): fb.write(line) if name == "John" and pwd == '111': return redirect("/home/") else: error_msg = "用户名或者密码错误" return render(request, 'login.html', {'error_msg': error_msg}) # 这个error_msg在django会去自动替换 # error_msg
login.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <link rel="stylesheet" href="/static/commons.css"/> <style> label{ width:80px; text-align:right; display:inline-block; } </style> </head> <body> <form action="/login/" method="post" enctype="multipart/form-data"> <label for="username">用户名:</label> <input id="username" type="text" name="user" /> </p> <p> <label for="passwd">密码:</label> <input id="passwd" type="password" name="pwd" /> </p> <p> 男<input type='radio' name="gender" value="1"/> 女<input type='radio' name="gender" value="2"/> </p> <p> 篮球<input type="checkbox" name="favor" value="basket"/> 足球<input type="checkbox" name="favor" value="football"/> 乒乓球<input type="checkbox" name="favor" value="tennis"/> </p> <p> <select name="city" multiple="multiple"> <option value="sh">上海</option> <option value="bj">北京</option> <option value="nj">南京</option> </select> </p> <p> <input type="file" name="f1"/> </p> <input type="submit" value="提交" /> <span style="color:red">{{ error_msg }}</span> </form> <!-- <script src="/static/jquery.min.js"></script> --> </body> </html>上传页面
相关文章推荐
- Django学习笔记(5) -- 上传文件
- Django框架学习笔记(28.文件上传详解)
- Django框架学习笔记(5.获取多个数据以及文件上传)
- Django学习笔记(六)Django上传文件
- django 学习-15 .Django文件上传(用户注册)
- Fuse用户空间文件系统安装学习笔记(ver2.7.3 red hat)
- 学习笔记:基础+文件操作(上传|下载)+面向对象+xml
- [Struts2]struts2 实现文件上传【学习笔记】
- Struts2学习笔记之文件的上传与下载
- JSP Servlet学习笔记——使用fileupload上传文件
- ASP.NET 3.5核心编程学习笔记(9):用户配置文件
- 【django 学习笔记】13-会话、用户和注册
- php学习笔记(十一)文件上传类的编写
- SharePoint【学习笔记】-- SharePoint 2010 启用Form认证并增加用户注册功能
- 文件的上传下载---struts2学习笔记
- Linux系统学习笔记:文件、目录、用户
- 学习 jForum笔记 四ForumAction 发现用户认证模板 .
- Struts2学习笔记之文件的上传与下载
- ASP.NET 3.5核心编程学习笔记(9):用户配置文件
- PHP学习笔记:文件上传