设为首页 加入收藏

TOP

Django表单上传
2017-09-30 14:18:39 】 浏览:2394
Tags:Django 表单 上传

任务描述:实现表单提交(上传文件)

1.项目目录:

2.源代码:

regist.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>regist</title>
</head>
<body>
<h3>regist</h3>
<hr>
<form method="post" enctype="multipart/form-data">
    {% csrf_token %}
    {{uf.as_p}}
    <input type="submit" value="submit">
</form>
</body>
</html>

views.py

from django.shortcuts import render
from django import forms
import sqlite3
from . import models


class UserForm(forms.Form):
	username = forms.CharField(max_length=100)
	headimg = forms.FileField()


def insert(user):
	# 连接数据保存
	print('insert:')
	print(user.username)
	models.User.objects.create(username=user.username, headimg=user.headimg)
	return True


def regist(request):
	context = {}
	if request.method == 'POST':
		uf = UserForm(request.POST, request.FILES)
		if uf.is_valid():
			username = uf.cleaned_data['username']
			headimg = uf.cleaned_data['headimg']
			user = models.User(username=username, headimg=headimg.name)
			print(user.username)
			# save headimg
			fp = open('upload/' + headimg.name, 'wb')
			s = headimg.read()
			fp.write(s)
			fp.close()
			if insert(user):
				return render(request, 'regist_ok.html', context)
	else:
		uf = UserForm()
	context = {'uf': uf}
	return render(request, 'regist.html', context)

urls.py

from django.conf.urls import url
from django.contrib import admin
from user import views

urlpatterns = [
	url(r'^admin/', admin.site.urls),
	url(r'user/regist/', views.regist),
]

3.admin管理

from django.contrib import admin
from . import models


# Register your models here.

class UserAdmin(admin.ModelAdmin):
	# 设置显示的字段
	list_display = ("username", "headimg")


admin.site.register(models.User, UserAdmin)

4.运行测试

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Python程序练习3--模拟购物车 下一篇day8--socket回顾

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目