Django 中购物车的登录 注册 退出

实战

'views:'


from django.shortcuts import render, HttpResponse, redirect, reverse

from app01 import models
from django.contrib import auth
def login(request):
    if request.method == 'GET':

        return render(request, 'login.html')

    else:
        username = request.POST.get('username')
        password = request.POST.get('password')
        user_obj = models.User.objects.filter(name=username, pad=password)
        if user_obj:

            request.session['is_login'] = True

            request.session['pk'] = user_obj.first().pk
            print(request.session['pk'])
            return redirect('/index/')
        else:
            return redirect('/login/')
def index(request):
    return render(request,'index.html')


def good_list(request):
    good_list=models.Good.objects.all()
    return render(request,'good_list.html',{'good_list':good_list})

def car_list(request):
    car_all=models.Car.objects.all()
    return render(request, 'car_list.html', {'car_all':car_all})


def car_add(request):
    pk=request.GET.get('id')
    car_obj=models.Car.objects.create(goods_id=pk,users_id=request.user_obj.pk)
    car_obj.save()
    car_all=models.Car.objects.filter(users_id=request.user_obj.pk)
    return render(request, 'car_add.html', {'car_all':car_all})

def car_del(request):
    pk=request.GET.get('id')
    car_all=models.Car.objects.filter(pk=pk)
    car_all.delete()
    return redirect('/car_list/')

def order_list(request):
    order_all=models.Order.objects.all()
    return render(request, 'order_list.html', {'order_all':order_all})

def order_add(request):
    pk=request.GET.get('id')
    car_obj=models.Car.objects.get(id=pk)
    goods_obj = models.Good.objects.get(pk=car_obj.goods_id)
    car_obj.delete()

    order_obj = models.Order.objects.create(goods=goods_obj)
    print(order_obj)
    return redirect(reverse('order_list'))
def order_del(request):
    pk = request.GET.get('id')
    models.Order.objects.filter(pk=pk).delete()
    return redirect('/order_list/')



def logout(request):
    auth.logout(request)
    return HttpResponse('购物愉快,欢迎下次再来')

def register(request):
    if request.method == 'GET':
        return render(request, 'register.html')
    else:
        name = request.POST.get('name')
        pad = request.POST.get('pad')
        register_obj=models.User.objects.create(
            name=name,
            pad=pad,
            admin=0
        )
        register_obj.save()


        return redirect('/login/')


中间键

from django.shortcuts import redirect,HttpResponse,render

from app01.models import User
from django.utils.deprecation import MiddlewareMixin


class Auth(MiddlewareMixin):
    white_list = ['/login/','/register/',]

    def process_request(self,request):
        if request.path in self.white_list:
            return
        is_login = request.session.get('is_login')


        if is_login == True:
            pk = request.session.get('pk')
            user_obj = User.objects.get(pk=pk)
            request.user_obj = user_obj
            return

        return redirect('/login/')
models:



from django.db import models

# Create your models here.
class User(models.Model):
    name = models.CharField(max_length= 32,null=False)
    pad = models.CharField(max_length=32,null=False)
    admin=models.BooleanField(choices=((True,'Y'),(False,'N')))


class Good(models.Model):
    name= models.CharField(max_length= 32)
    price=models.DecimalField(max_digits=6,decimal_places=2)

    def __str__(self):
        return self.name


class Order(models.Model):
    goods = models.ForeignKey('Good')
    User=models.ManyToManyField('User')




class Car(models.Model):
    goods= models.ForeignKey('Good',on_delete=models.CASCADE)
    users = models.ForeignKey('User', on_delete=models.CASCADE, null=True)
urls
from django.conf.urls import url
from django.contrib import admin
from app01 import views
urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^login/', views.login),
    url(r'^index/', views.index),
    url(r'^good_list/', views.good_list),
    url(r'^car_list/', views.car_list),
    url(r'^car_add/', views.car_add),
    url(r'^car_del/', views.car_del),
    url(r'^order_add/', views.order_add),
    url(r'^order_list/', views.order_list, name='order_list'),
    url(r'^order_add/', views.order_add, name='order_add'),
    url(r'^order_del/', views.order_del, name='order_del'),
    url(r'^logout/', views.logout, name='logout'),
    url(r'^register/', views.register, name='register'),
]

template

意淫

settings配置

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    # 'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
#####'app01.mymiddleware.yanzheng.Auth',######就是这个  
]

猜你喜欢

转载自www.cnblogs.com/x-h-15029451788/p/11967596.html