• 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',######就是这个  
    ]
    
  • 相关阅读:
    mysql数据库存储的引擎和数据类型
    mysql数据库基本操作
    【转】linux yum命令详解
    [转]Linux rpm 命令参数使用详解
    【转】Linux GCC常用命令
    [转]linux下logrotate 配置和理解
    [转]Linux下chkconfig命令详解
    [转]linux之top命令
    [转]linux之ps命令
    互联网产品如何做到快与轻
  • 原文地址:https://www.cnblogs.com/x-h-15029451788/p/11967596.html
Copyright © 2020-2023  润新知