Django之session数据源配置

不多说,直接贴代码

 

ORM操作:

from django.db import models

class Boy(models.Model):


nickname = models.CharField(max_length=32)
username = models.CharField(max_length=32)
password = models.CharField(max_length=64)

class Girl(models.Model):
nickname = models.CharField(max_length=32)
username = models.CharField(max_length=32)
password = models.CharField(max_length=64)


class B2G(models.Model):


b = models.ForeignKey('Boy',on_delete=models.CASCADE)
g = models.ForeignKey('Girl',on_delete=models.CASCADE)

 

配置app:

INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'app01.apps.App01Config',

]

 

Views操作:

 account:from django.shortcuts import render,HttpResponse,redirect

from app01 import models
def login(request):

if request.method == 'GET':

return render(request,'login.html')
else:
user = request.POST.get('username')
pwd = request.POST.get('password')
gender = request.POST.get('gender')
rmb = request.POST.get('rmb')
print(user,pwd,gender)
#性别判断
if gender == '1':
obj = models.Boy.objects.filter(username=user,password=pwd).first()
else:
obj = models.Girl.objects.filter(username=user, password=pwd).first()
if not obj:
#未登录
return render(request,'login.html',{'msg':'出现错误'})
else:
# request.session['user_id'] = obj.id
# request.session['gender'] = gender
# request.session['username'] = user
request.session['user_info'] = {'user_id':obj.id,'gender':gender,'username':user,'nickname':obj.nickname}
return redirect('/index.html')
def logout(request):
if request.session.get('user_info'):
request.session.clear()
# request.session.delete(request.session.session_key)
return
redirect('/login.html')

love:
from django.shortcuts import render,HttpResponse,redirect

from app01 import models

def index(request):
if not request.session.get('user_info'):
return redirect('/login.html')

else:
#男:查看女生列表
#女:男生
gender = request.session.get('user_info').get('gender')
# current_nickname = request.session.get('user_ifo').get('nickname')

if gender == '1':
user_list = models.Girl.objects.all()

else:
user_list = models.Boy.objects.all()

return render(request,'index.html',{'user_list':user_list})

def others(request):


"""
获取与当前用户有关系的异性

:param request:
:return:
"""

current_user_id = request.session.get('user_info').get('user_id')
gender = request.session.get('user_info').get('gender')

if gender == '1':
user_list = models.B2G.objects.filter(b_id=current_user_id).values('g__nickname')
else:
user_list = models.B2G.objects.filter(g_id=current_user_id).values('b__nickname')

return render(request,'others.html',{'user_list':user_list})


路由URL:

from django.contrib import admin
from django.urls import path
from django.conf.urls import url

from app01.views import account,love



urlpatterns = [
path('admin/', admin.site.urls),

url(r'^login.html$',account.login),

url(r'^index.html$', love.index),
url(r'^logout.html$', account.logout),
url(r'^others.html$', love.others),

]

女生表:

男生表:

男女关系表:

 

 

 
 
 

 

转载于:https://www.cnblogs.com/qinjiaxin/p/10522416.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值