个人网站下单源码分享?自助下单网站源码

这篇文章给大家聊聊关于个人网站下单源码分享,以及自助下单网站源码对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

博客目录:

……

十、基于Django+mysql的点餐系统设计-第十篇(H5手机移动端点餐:登录)

十一、基于Django+mysql的点餐系统设计-第十一篇(H5手机移动端点餐:购物车操作)

十二、基于Django+mysql点餐系统设计-第十二篇(移动端:会员下单处理)

本章源码下载地址:https://github.com/hopeSuceess/testorder/tree/testorder_20220622_01

上一篇讲了购物车操作,紧接着上一篇继续讲新增购物车后,这些餐品的下单操作。首先在Model层定义数据库表,在myadmin/models.py中编写如下代码:

店铺id号\nmember_id=models.IntegerField()操作员id\nmoney=models.FloatField()订单状态:1进行中/2无效/3已完成\npayment_status=models.IntegerField(default=1)创建时间\nupdate_at=models.DateTimeField(default=datetime.now)34;orders&更改表名\n\n订单id\n菜品id\nproduct=models.ForeignKey(&39;,on_delete=models.CASCADE)菜品名称\nprice=models.FloatField()数量\nstatus=models.IntegerField(default=1)34;order_detail&更改表名\n\n订单id号\nmember_id=models.IntegerField()支付金额\ntype=models.IntegerField()收款银行渠道:1微信/2余额/3现金/4支付宝\nstatus=models.IntegerField(default=1)创建时间\nupdate_at=models.DateTimeField(default=datetime.now)34;payment&更改表名

定义完了数据库表,开始编写路由控制器的逻辑,在mobile/urls.py中先定义加载移动端订单页的路由逻辑

39;orders/add&34;mobile_addorders&加载移动端订单页

定义完了路由逻辑,现在开始写view层的实现逻辑,在mobile/views/cart.py中编写addOrders函数

defaddOrders(request):\n&34;&34;&34;\n39;cartlist&初始化一个总金额\n39;num&39;price&39;total_money&34;mobile/addOrders.html&39;mobile/base.html&34;header&34;javascript:window.history.back();&34;return&34;main-containeradd-product&34;list-contentcartlistorder-Pro&34;line&34;34;><divclass=&34;><imgsrc=&39;uploads/product/&34;alt=&34;></div></a>

<divclass=&34;><h3>{{vo.name}}</h3><b>¥{{vo.price}}</b>×{{vo.num}}</div>

</li>

{%endfor%}

</ul>

</div>

<!–支付方式–>

<divclass=&34;id=&34;>

<p>支付方式</p>

<olclass=&34;>

</ol>

<divclass=&34;>

<ulclass=&34;>

<liclass=&34;bank=&34;><iclass=&34;></i>支付宝支付<emclass=&34;></em></li>

<libank=&34;><iclass=&34;></i>微信支付<emclass=&34;></em></li>

</ul>

</div>

</div>

<br><br>

</article>

<!—底部栏目–>

<footer>

<divclass=&34;><buttononclick=&34;>提交订单</button></div>

<h4>实付款:¥{{request.session.total_money}}</h4>

</footer>

{%endblock%}

{%blockmyjavascript%}

<script>

//支付方式上的单选按钮点击效果

$(&34;).click(function(){

$(&34;).removeClass(&34;);

$(this).addClass(&34;);

});

//执行订单提交操作函数

functiondoSubmit(){

{34;ul.lineli.select&34;bank&}

{34;{%url&39;%}?bank=&}

window.location.href=&39;mobile_doaddorders&34;;

}

</script>

{%endblock%}

好了,现在启动工程调试一下,访问http://127.0.0.1:8000/mobile/,选择菜品后,点击&34;,跳到了&34;页

继续往下写,在提交订单页提交订单,这里涉及了多个数据库表的插入:订单信息表、支付表、订单详情表,这三表里的信息在后续的查询中都会用到。

在mobile/views/index.py中实现doAddOrders函数

defdoAddOrders(request):\n&39;&39;&39;\ntry:\n39;shopinfo&39;id&39;mobileuser&39;id&39;total_money&订单状态:1进行中/2无效/3已完成\nod.payment_status=234;%Y-%m-%d%H:%M:%S&34;%Y-%m-%d%H:%M:%S&执行支付信息添加\nop=Payment()\nop.order_id=od.id39;mobileuser&39;id&1会员付款/2收银收款\nop.bank=request.GET.get(&34;,3)39;total_money&支付状态:1未支付/2已支付/3已退款\nop.create_at=datetime.now().strftime(&34;)\nop.update_at=datetime.now().strftime(&34;)\nop.save()\n\n34;cartlist&获取购物车中的菜品信息\n订单id\nov.product_id=item[&39;]39;name&菜品名称\nov.price=item[&39;]39;num&数量\nov.status=139;cartlist&39;total_money&34;mobile/orderinfo.html&34;order&!-*-coding:UTF-8-*-

@Author:中国

@Software:PyCharm

fromdatetimeimportdatetime

fromdjango.httpimportHttpResponse

fromdjango.shortcutsimportredirect,render

fromdjango.urlsimportreverse

frommyadmin.modelsimportCategory,Product,Shop,Member,Payment,OrderDetail,Orders

defindex(request):

接收到前端的处理逻辑,返回”欢迎来到大堂点餐!“

39;欢迎来到手机移动端点餐页面!&39;&39;移动端首页&39;&获取并判断当前店铺信息

shopinfo=request.session.get(&34;,None)

ifshopinfoisNone:

returnredirect(reverse(&34;))获取当前店铺下的菜品类别和菜品信息

clist=Category.objects.filter(shop_id=shopinfo[&39;],status=1)

productlist=dict()

forvoinclist:

plist=Product.objects.filter(category_id=vo.id,status=1)

productlist[vo.id]=plist

context={&39;:clist,&39;:productlist.items(),&39;:clist[0]}

returnrender(request,&34;,context)

defshop(request):

&39;&39;&39;

context={&39;:Shop.objects.filter(status=1)}

returnrender(request,&39;,context)

defselectShop(request):

&39;&39;&39;

39;sid&将店铺信息放入到seession中

request.session[&39;]=ob.toDict()

returnredirect(reverse(&39;))

defregister(request):

&39;&39;&39;

returnrender(request,&34;)

defdoRegister(request):

&39;&39;&39;

34;1234&request.session[&39;]

code=request.POST[&39;]

ifverifycode!=code:

context={&39;:&39;}

returnrender(request,&34;,context)

try:

39;mobile&此处可以执行当前会员注册(添加)

ob=Member()

ob.nickname=&34;34;moren.png&默认头像

ob.mobile=request.POST[&39;]34;%Y-%m-%d%H:%M:%S&34;%Y-%m-%d%H:%M:%S&检查当前会员状态

ifmember.status==1:

39;mobileuser&重定向到首页

returnredirect(reverse(&34;))

else:

context={&34;:&39;}

returnrender(request,&34;,context)

defaddOrders(request):

&39;&39;&39;

39;cartlist&初始化一个总金额

39;num&39;price&39;total_money&放进session

returnrender(request,&34;)

defdoAddOrders(request):

&39;&39;&39;

try:

39;shopinfo&39;id&39;mobileuser&39;id&39;total_money&订单状态:1进行中/2无效/3已完成

od.payment_status=234;%Y-%m-%d%H:%M:%S&34;%Y-%m-%d%H:%M:%S&执行支付信息添加

op=Payment()

op.order_id=od.id39;mobileuser&39;id&1会员付款/2收银收款

op.bank=request.GET.get(&34;,3)39;total_money&支付状态:1未支付/2已支付/3已退款

op.create_at=datetime.now().strftime(&34;)

op.update_at=datetime.now().strftime(&34;)

op.save()

34;cartlist&获取购物车中的菜品信息

订单id

ov.product_id=item[&39;]39;name&菜品名称

ov.price=item[&39;]39;num&数量

ov.status=139;cartlist&39;total_money&34;mobile/orderinfo.html&34;order&头条创作挑战赛#

如果你还想了解更多这方面的信息,记得收藏关注本站。

Published by

风君子

独自遨游何稽首 揭天掀地慰生平