zoukankan      html  css  js  c++  java
  • 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.运行测试

  • 相关阅读:
    若依问题解决(一)
    Java 将两个List转换为流合并List
    后端返回前端文本换行显示,只能在前端再转换
    Java Stream() 流根据对象属性去重
    vue 当前端传回后端,后端使用实体类接收数据显示报错
    js 中 getMonth() 获取的月份比现实少一个月
    vue连个数组对比
    JS链接跳转方法
    ElementUI--表格toggleRowSelection无法选中
    Linux 常用命令
  • 原文地址:https://www.cnblogs.com/jasonhaven/p/7487366.html
Copyright © 2011-2022 走看看