实战
'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',######就是这个
]