from django.contrib.auth.hashers import make_password, check_password
from django.core.cache import cache,caches
from django.core.mail import send_mail
from django.http import HttpResponse, JsonResponse
from django.shortcuts import render, redirect
from django.urls import reverse
from App.models import MainWheel, MainNav, MainMustBuy, MainShop, MainShow, FoodType, Goods, AXFUser, Cart, Order, \
OrderDetail
from App.views_constant import ALL_TYPE, ORDER_TOTAL, ORDER_PRICE_UP, ORDER_PRICE_DOWN, ORDER_SALE_UP, ORDER_SALE_DOWN, \
ORDER_STATUS_NOT_SEND, ORDER_STATUS_NOT_PAY, ORDER_STATUS_NOT_RECEIVE
import uuid
from App.views_helper import send_email_activate, total_price
from GPAXF.settings import MEDIA_KEY_PREFIX
def home(request):
main_wheels = MainWheel.objects.all()
main_navs = MainNav.objects.all()
main_mustbuys = MainMustBuy.objects.all()
main_shops = MainShop.objects.all()
main_shop0_1 = main_shops[0:1]
main_shop1_3 = main_shops[1:3]
main_shop3_7 = main_shops[3:7]
main_shop7_11 = main_shops[7:11]
main_shows = MainShow.objects.all()
title = "首页"
return render(request,"main/home.html",locals())
def market(request):
return redirect(reverse("axf:market_with_params",
kwargs={"typeid": "104749", "childcid": "0", "order_rule": "0"}))
def market_with_params(request, typeid, childcid, order_rule):
foodtypes = FoodType.objects.all()
foodtype_childname_list = [x.split(":") for x in FoodType.objects.get(typeid=typeid).childtypenames.split("#")]
goods_list = Goods.objects.filter(categoryid = typeid) #通过大类型的id查询对应的商品
if childcid == ALL_TYPE:
pass
else:
goods_list = goods_list.filter(childcid = childcid)
if order_rule == ORDER_TOTAL:
pass
elif order_rule == ORDER_PRICE_UP:
goods_list = goods_list.order_by("price")
elif order_rule == ORDER_PRICE_DOWN:
goods_list = goods_list.order_by("-price")
elif order_rule == ORDER_SALE_UP:
goods_list = goods_list.order_by("productnum")
elif order_rule == ORDER_PRICE_DOWN:
goods_list = goods_list.order_by("-productnum")
order_rule_list = [
["综合排序",ORDER_TOTAL],
["价格升序",ORDER_PRICE_UP],
["价格降序",ORDER_PRICE_DOWN],
["销量升序",ORDER_SALE_UP],
["销量降序",ORDER_SALE_DOWN],
]
user_id = request.session.get("user_id")
if user_id:
user = AXFUser.objects.get(pk=user_id)
user_carts = Cart.objects.filter(user=user)
for goods in goods_list:
carts = user_carts.filter(goods= goods)
if carts:
cart = carts.first()
goods.cart_goods_num = cart.cart_goods_num
data = {
"foodtypes": foodtypes,
"typeid": int(typeid),
"childcid": childcid,
"goods_list": goods_list,
"order_rule_list": order_rule_list,
"order_rule_view":order_rule,
"foodtype_childname_list": foodtype_childname_list,
"title":"闪送超市",
}
return render(request, 'main/market.html', context=data)
def register(request):
if request.method =="GET":
return render(request,'user/register.html',{"title":"用户注册"})
elif request.method == "POST":
username =request.POST.get("username")
email = request.POST.get("email")
password = request.POST.get("password")
icon = request.FILES.get("icon")
new_user = AXFUser()
new_user.u_username = username
new_user.u_password = make_password(password)
new_user.u_email = email
new_user.u_icon = icon
new_user.save()
u_token = uuid.uuid4().hex
cache.set(u_token,new_user.id,timeout=60*60*24)
send_email_activate(new_user.u_username,new_user.u_email,u_token)
return redirect(reverse("axf:login"))
def login(request):
if request.method == "GET":
error_message = request.session.get("error_message")
data = {
"title": "用户登录",
}
if error_message:
del request.session["error_message"]
data["error_message"] = error_message
return render(request, 'user/login.html',data)
elif request.method == "POST":
username = request.POST.get('username')
password = request.POST.get('password')
users = AXFUser.objects.filter(u_username=username)
if users.exists():
user = users.first()
if check_password(password,user.u_password):
if user.is_active:
request.session["user_id"] = user.id
return redirect(reverse("axf:mine"))
else:
request.session["error_message"] = "用户未激活!"
return redirect(reverse("axf:login"))
else:
request.session["error_message"] = "密码错误!"
return redirect(reverse("axf:login"))
else:
request.session["error_message"] = "用户不存在!"
return redirect(reverse("axf:login"))
# def my_send_email(request):
# subject = "请激活您的账户"
# message = "点击下面的链接以激活您的账户,祝您使用愉快"
# from_email = "18797367627@163.com"
# recipient_list = ["17797172720@163.com",]
# send_mail(subject=subject,message=message,from_email=from_email,recipient_list=recipient_list)
# return HttpResponse("邮件发送成功")
def check_user(request):
username = request.GET.get("username")
users = AXFUser.objects.filter(u_username=username)
data = {
"status":200,
}
if users.exists():
data["status"] = 901
return JsonResponse(data)
def activate(request):
u_token = request.GET.get("u_token")
user_id = cache.get(u_token)
if user_id:
user = AXFUser.objects.get(pk=user_id)
user.is_active = True
user.save()
return redirect(reverse("axf:login"))
return render(request,"user/activate_fail.html")
def mine(request):
user_id = request.session.get("user_id")
data = {
"is_login":False,
"title":"我的主页"
}
if user_id:
user = AXFUser.objects.get(pk=user_id)
data["icon"] = MEDIA_KEY_PREFIX + user.u_icon.name
data["is_login"] = True
data["username"] = user.u_username
data["order_not_pay"] = Order.objects.filter(o_user=user).filter(o_state = ORDER_STATUS_NOT_PAY).count()
data["order_not_receive"] = Order.objects.filter(o_user=user).filter(o_state__in= [ORDER_STATUS_NOT_SEND,ORDER_STATUS_NOT_RECEIVE]).count()
return render(request,"main/mine.html",data)
def logout(request):
request.session.flush()
return redirect(reverse("axf:mine"))
def gocart(request):
carts = Cart.objects.filter(user=request.user)
data ={
"title":"购物车",
"carts":carts,
"total_price":total_price(carts),
}
return render(request,"main/cart.html",data)
def add_to_cart(request):
goodsid = request.GET.get("goodsid")
carts = Cart.objects.filter(user = request.user).filter(goods_id=goodsid)
if carts:
cart = carts.first()
cart.cart_goods_num = cart.cart_goods_num + 1
else:
cart = Cart()
cart.user = request.user
cart.goods_id = goodsid
cart.save()
data = {
"status":200,
"c_goods_num":cart.cart_goods_num,
}
return JsonResponse(data)
def sub_from_cart(request):
goodsid = request.GET.get("goodsid")
carts = Cart.objects.filter(user=request.user).filter(goods_id=goodsid)
cart = carts.first()
data = {
"status": 200,
}
if cart.cart_goods_num > 1:
cart.cart_goods_num = cart.cart_goods_num -1
data["c_goods_num"] = cart.cart_goods_num
cart.save()
else:
cart.delete()
dat
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
爱鲜蜂项目源码 (137个子文件)
config.conf 951B
bootstrap.css 143KB
bootstrap.min.css 118KB
swiper.css 20KB
swiper.min.css 17KB
cart.css 5KB
market.css 4KB
home.css 4KB
mine.css 3KB
main.css 2KB
reset.css 2KB
order_list_not_pay.css 1KB
order_detail.css 1KB
user.css 84B
register.css 84B
order.css 81B
glyphicons-halflings-regular.eot 20KB
home.html 5KB
mine.html 5KB
market.html 5KB
cart.html 3KB
register.html 2KB
order_list_not_pay.html 1KB
order_detail.html 1KB
base_main.html 1KB
login.html 1KB
base.html 914B
activate.html 423B
base_user.html 363B
base_order.html 232B
activate_fail.html 143B
GPAXF.iml 1KB
uwsgi.ini 324B
20140617131104_hcJft.thumb.700_0.jpeg 62KB
20140617131104_hcJft.thumb.700_0_yb4bW2i.jpeg 62KB
20140617131104_hcJft.thumb.700_0.jpeg 62KB
u38468958392711067435fm26gp0_j4CqA6x.jpg 22KB
u38468958392711067435fm26gp0.jpg 22KB
u38468958392711067435fm26gp0.jpg 22KB
u2802691956955693789fm26gp0.jpg 19KB
jquery.js 262KB
swiper.jquery.js 204KB
jquery.min.js 90KB
swiper.jquery.min.js 85KB
bootstrap.js 68KB
bootstrap.min.js 36KB
md5.js 23KB
cart.js 4KB
market.js 3KB
register.js 1KB
order_detail.js 375B
home.js 337B
mine.js 331B
order_list_not_pay.js 222B
login.js 182B
base.js 92B
uwsgi.log 20KB
bootstrap.min.css.map 529KB
bootstrap.css.map 380KB
uwsgi.pid 5B
market.png 2KB
mine.png 1KB
home.png 1KB
mine_selected.png 1KB
cart.png 1KB
market_selected.png 1KB
cart_selected.png 1KB
home_selected.png 886B
views.py 11KB
0001_initial.py 6KB
models.py 4KB
settings.py 4KB
0005_order_orderdetail.py 1KB
axfmiddleware.py 1KB
urls.py 1KB
views_helper.py 968B
0002_axfuser.py 946B
0003_cart.py 904B
urls.py 870B
manage.py 804B
views_constant.py 666B
0004_auto_20190117_1051.py 479B
wsgi.py 388B
__init__.py 192B
apps.py 81B
admin.py 63B
tests.py 60B
__init__.py 0B
__init__.py 0B
__init__.py 0B
views.cpython-35.pyc 10KB
views.cpython-36.pyc 9KB
models.cpython-35.pyc 7KB
models.cpython-36.pyc 6KB
settings.cpython-35.pyc 3KB
settings.cpython-36.pyc 3KB
0001_initial.cpython-36.pyc 2KB
views_helper.cpython-35.pyc 1KB
urls.cpython-35.pyc 1KB
axfmiddleware.cpython-36.pyc 1KB
共 137 条
- 1
- 2
资源评论
PigHui233
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功