html session登录,一个小的登录查看的session案例

需求

1,创建两个页面,一个是登录页面,一个是登录成功后,显示个人信息的页面

2,登录页面是基于session

3、数据表(男生,女生,男女关系)

4、登录页(用户名,密码,性别,一周免登陆)

5、内容页,异性列表和有关系的列表

设计

views的改变

把登陆的代码和关系内容的代码分开,所以创建了views目录,并且把不同的内容写到了不同的模块中。如图

9ce6af3c477760113331f359dd5f41b9.png

各个py文件代码

from django.shortcuts import render,HttpResponse,redirect

from app_01 import models

def acc_login(request):

if request.method == "GET":

return render(request,'acclogin.html')

else:

user = request.POST.get('username')

gender = request.POST.get('gender')

pwd = request.POST.get('password')

rmb = request.POST.get('rmb')

print(user,gender,pwd,rmb)

if gender == "1":

obj = models.AccBoy.objects.filter(username=user,password=pwd).first()

else:

obj = models.AccGirl.objects.filter(username=user,password=pwd).first()

if not obj:

return render(request,'acclogin.html',{'msg':'用户名或密码错误'})

else:

request.session['user_info'] = {'user_d':obj.id,'gender':gender,'rmb':rmb,'user':user,'nickname':obj.nickname}

return redirect('/accindex.html')

def acclogout(request):

if request.session.get('user_info'):

request.session.clear()

return redirect('/acclogin.html')

from django.shortcuts import render,redirect,HttpResponse

from app_01 import models

def accindex(requtst):

if not requtst.session.get('user_info'):

return redirect('/acclogin.html')

else:

gender = requtst.session.get("user_info").get('gender')

if gender == '1':

user_list = models.AccGirl.objects.all()

else:

user_list = models.AccBoy.objects.all()

return render(requtst,'accindex.html',{'user_list':user_list})

html代码

accindex

accindex

当前用户:{{ request.session.user_info.nickname }}

注销用户

用户列表


{% for item in user_list %}

{{ item.username }}

{% endfor %}

acclogin代码

{% csrf_token %}

用户名

密码

一周内免登陆

related_name知识点

afd9b5b9e0e6aaf4cb8de9673a8bf626.png

ca070198d41e6d00d786f4e1a2fc64a6.png

from django.db import models

class UserInfo(models.Model):

nickname = models.CharField(max_length=32)

username = models.CharField(max_length=32)

password = models.CharField(max_length=64)

gender_choices = (

(1,'男'),

(2,'女'),

)

gender = models.IntegerField(choices=gender_choices)

m = models.ManyToManyField('UserInfo')

"""

1 女

2 女

3 女

4 男

5 男

a1 = 2

a2 = 5

"""

# related_query_name

# obj对象男.b_set.all()

# obj对象女.a_set.all()

# related_name

# obj对象男.a.all()

# obj对象女.b.all()

# class U2U(models.Model):

# g = models.ForeignKey('UserInfo',related_name='boys')

# b = models.ForeignKey('UserInfo',related_name='girls')

# U2U.objects.create(g_id=a1,b_id=a2)

# related_query_name,related_name

# class UserType(models.Model):

# title = models.CharField(max_length=32)

#

# class User(models.Model):

# username = models.CharField(max_length=32)

# ut = models.ForeignKey('UserType',related_query_name='xxxx')

# 反向:

# related_name='xxxx'

# user_set ==> xxxx

# related_query_name='xxxx'

# user_set ==> xxxx_set

# FK自关联

class Comment(models.Model):

"""

评论表

"""

news_id = models.IntegerField() # 新闻ID

content = models.CharField(max_length=32) # 评论内容

user = models.CharField(max_length=32) # 评论者

reply = models.ForeignKey('Comment',null=True,blank=True,related_name='xxxx')

"""

新闻ID reply_id

1 1 别比比 root null

2 1 就比比 root null

3 1 瞎比比 shaowei null

4 2 写的正好 root null

5 1 拉倒吧 由清滨 2

6 1 拉倒吧1 xxxxx 2

7 1 拉倒吧2 xxxxx 5

"""

"""

新闻1

别比比

就比比

- 拉倒吧

- 拉倒吧2

- 拉倒吧1

瞎比比

新闻2:

写的正好

"""

# def test(request):

# # models.U2U.objects.create(b_id=2,g_id=6)

# # models.U2U.objects.create(b_id=1,g_id=6)

# # models.U2U.objects.create(b_id=1,g_id=4)

# # models.U2U.objects.create(b_id=1,g_id=5)

#

# # boy = models.UserInfo.objects.filter(gender=1,id=2).first()

# # girl = models.UserInfo.objects.filter(gender=2,id=6).first()

# # models.U2U.objects.create(b=boy,g=girl)

#

# # UserInfo对象

# # xz = models.UserInfo.objects.filter(id=1).first()

# # # 和徐峥有关系的所有信息:U2U列表[U2U对象,2U对象,2U对象,]

# # result = xz.girls.all()

# # for u in result:

# # # U2U对象

# # print(u.g.nickname)

#

# # 查男生

# # xz = models.UserInfo.objects.filter(id=1).first()

# # u = xz.m.all()

# # for row in u:

# # print(row.nickname)

# # 查女神

# # xz = models.UserInfo.objects.filter(id=4).first()

# # v = xz.userinfo_set.all()

# # for row in v:

# # print(row.nickname)

# return HttpResponse('...')

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值