django 王中王13之面包

setting:

STATIC_URL = '/static/'

STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static'),
]

UPLOAD_ROOT = os.path.join(BASE_DIR,'upload')
 
 
 
主urls:
from django.contrib import admin
from django.urls import path,re_path,include
from django.views.static import serve
from three.settings import UPLOAD_ROOT

urlpatterns = [
# path('admin/', admin.site.urls),
re_path('^upload/(?P<path>.*)$',serve,{'document_root':UPLOAD_ROOT}),
path('web2/',include('web2.urls')),
]
 
 
 
 
副urls:
from django.contrib import admin
from django.urls import path,re_path,include
from web2 import views

urlpatterns = [
path('index/',views.Index.as_view()),
path('add_cakecate/',views.AddCakecate.as_view()),
path('add_cake/',views.AddCake.as_view()),
path('add_cakeorder/',views.Addcakeorder.as_view()),

]
 
 
 
 
models:
from django.db import models

# Create your models here.


class CakeCate(models.Model):
id = models.AutoField(primary_key=True)
name = models.CharField(max_length=30)

class Meta:
db_table = 'cakecate'


class Cake(models.Model):
id = models.AutoField(primary_key=True)
name = models.CharField(max_length=50)
image_url = models.CharField(max_length=255)
price = models.DecimalField(max_digits=7,decimal_places=2)
count = models.CharField(max_length=255)
cakecate = models.ForeignKey(CakeCate,on_delete=models.CASCADE)

class Meta:
db_table = 'cake'


class CakeOrder(models.Model):
id = models.AutoField(primary_key=True)
count = models.IntegerField()
phone = models.CharField(max_length=11)
address = models.CharField(max_length=100)
username = models.CharField(max_length=30)
content = models.CharField(max_length=255)
name = models.CharField(max_length=30)








 
 
 
views:
from django.shortcuts import render,HttpResponse,redirect
from django.views import View
from web2.models import *
from web.views import uploadfile
import json

# Create your views here.



class AddCakecate(View):
def get(self,request):
return render(request,'qimo3/add_cakecate.html')
def post(self,request):
name = request.POST.get('name')
if name:
cakecate = CakeCate(name=name)
cakecate.save()
return redirect('/web2/add_cakecate/')


class AddCake(View):
def get(self,request):
cakecate = CakeCate.objects.all()
return render(request,'qimo3/add_cake.html',locals())
def post(self,request):
data = request.POST
name = data['name']
price = data['price']
count = data['count']
cakecate = data['cakecate']
image_url = request.FILES.get('image_url')
uploadfile(image_url)
cake = Cake(name=name,price=price,count=count,cakecate_id=cakecate,
image_url='/upload/'+image_url.name)
cake.save()
return redirect('/web2/add_cake/')

class Index(View):
def get(self,request):
cakecate = CakeCate.objects.all()
return render(request,'qimo3/index.html',locals())
def post(self,request):
mes = {}
id = request.POST.get('id')
if id:
cake = Cake.objects.filter(cakecate=id).all()
cakelist = []
for i in cake:
dict = {}
dict['name'] = i.name
dict['price'] = float(i.price)
dict['count'] = i.count
dict['id'] = i.id
dict['image_url'] = i.image_url
cakelist.append(dict)
mes['code'] = 200
mes['cakelist'] = cakelist
return HttpResponse(json.dumps(mes))

class Addcakeorder(View):
def get(self,request):
id = request.GET.get('id')
cakename = Cake.objects.filter(id=id).first()
return render(request,'qimo3/add_cakeorder.html',locals())
def post(self,request):

data = request.POST
name = data['name']
count = data['count']
phone = data['phone']
address = data['address']
username = data['username']
content = data['content']
cakeorder = CakeOrder(name=name,count=count,phone=phone,
address=address,username=username,content=content)
cakeorder.save()
return redirect('/web2/index/')







html:
add_cake:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="" method="post" enctype="multipart/form-data">
蛋糕名称:<input type="text" name="name"><br>
蛋糕价格:<input type="text" name="price"><br>
蛋糕简介:<input type="text" name="count"><br>
添加图片:<input type="file" name="image_url"><br>
选择分类:
<select name="cakecate" id="">
{% for i in cakecate %}
<option value="{{ i.id }}">{{ i.name }}</option>
{% endfor %}
</select><br>
<button type="submit">添加</button>
</form>
<a href="/web2/add_cakecate/">点击跳转到添加分类</a><br>
<a href="/web2/index/">点击跳转到首页</a>
</body>
</html>
 
 
 
add_cakecate:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="" method="post">
添加蛋糕分类:<input type="text" name="name"><br>
<button type="submit">添加</button>
</form>
<a href="/web2/add_cake/">点击跳转到添加商品</a><br>
<a href="/web2/index/">点击跳转到首页</a>
</body>
</html>
 
 
 
 
 
add_cakeorder:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="" method="post">
产品名称:<input type="text" name="name" value="{{ cakename.name }}"><br>
预定数量:<input type="text" name="count"><br>
收获姓名:<input type="text" name="username"><br>
收获地址:<input type="text" name="address"><br>
联系电话:<input type="text" name="phone"><br>
内容:<br><textarea name="content" id="" cols="30" rows="10"></textarea><br>
<button type="submit">提交</button>
</form>
</body>
</html>
 
 
 
 
 
index:
 
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script type="text/javascript" src="/static/jquery-1.12.4.min.js"></script>
</head>
<body>
{% for i in cakecate %}
<a href="javascript:get_cake({{ i.id }})">{{ i.name }}</a>
{% endfor %}
<div class="cake"></div>


</body>
<script type="text/javascript">
function get_cake(id) {
$.ajax({
url:'/web2/index/',
type:'post',
dataType:'json',
data:{'id':id},
success:function (res) {
if(res.code == 200){
var mes = res.cakelist
var len = mes.length
var html = '<ul>'
for(var i=0;i<len;i++){
html += '<li><img src="'+ mes[i]['image_url'] +'" width="70px" height="70px"></li>' +
'<li>'+ mes[i]['name'] +'</li>' +
'<li>'+ mes[i]['count'] +'</li>'+
'<li>'+ mes[i]['price'] +'</li>'+
'<button type="button"><a href="/web2/add_cakeorder/?id='+ mes[i]['id'] +'">预定</a></button>'
}
html += '</ul>'
$('.cake').html(html)
}
}
})
}
</script>
</html>
 
 
 
 
 
 

转载于:https://www.cnblogs.com/lhrd/p/10915098.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值