一、配置
1.语言和时区配置
LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Shanghai'
2.静态文件和上传保存文件路径配置
二、模型类
from django.db import models
class Products(models.Model):
p_name = models.CharField(max_length=20, verbose_name='产品') # verbose_name 设置数据中文名称
p_price = models.DecimalField(max_digits=8, decimal_places=2, verbose_name='价格')
class Meta:
db_table = 'products'
verbose_name = '产品'
verbose_name_plural = verbose_name
def __str__(self):
return self.p_name
def name(self):
return self.p_name
name.admin_order_field = 'p_name' # 设置产品排序
name.short_description = '产品名称' # 设置name显示名称
# 后台管理上传图片
class ImgUpload(models.Model):
img = models.ImageField(upload_to='img', verbose_name='图片')
class Meta:
verbose_name = '上传图片'
verbose_name_plural = verbose_name
三、路由设置
urlpatterns = [
path('admin/', admin.site.urls),
path('create/', views.create),
path('upLoadImg/', views.up_load_img)
]
四、视图函数
def create(request):
products_list = []
for i in range(1001):
obj = Products(p_name='产品' + str(i), p_price=i)
products_list.append(obj)
Products.objects.bulk_create(products_list) # 批量生成数据
return HttpResponse('ok')
# 自定义上传图片
def up_load_img(request):
if request.method == 'GET':
return render(request, 'up_load_imgs.html')
else:
print(request.FILES)
print(request.POST)
pic = request.FILES.get('pic') # 获取文件
save_path = '{}/img/{}'.format(settings.MEDIA_ROOT, pic.name) # 保存路径
with open(save_path, 'wb') as f: # 写进文件夹
for content in pic.chunks(): # chunks返回生成器
f.write(content)
ImgUpload.objects.create(img='img/{}'.format(pic.name)) # 图片相对路径,保存到数据库
return HttpResponse('OK')