首页 > 其他分享 >Django框架课-用户名密码登录

Django框架课-用户名密码登录

时间:2023-02-28 14:34:28浏览次数:48  
标签:用户名 登录 getinfo settings acapp Django player game py

Django框架课-用户名密码登录

创建账号系统

建立player表

数据库里的表对应的是django里的class

进入acapp/game/models里。models文件夹里是存放数据库表的。

新建player文件夹,添加一个__init__.py(touch __init__.py)

然后写player.py

vim player.py

(如果忘记了一些指令或者关键字库名等,可以使用python3 manage.py shell打开交互式界面,这个可以自动补全来提示.exit可以退出)

player.py

class Player(models.Model):
    user = models.OneToOneField(User,on_delete=models.CASCADE)
    photo = models.URLField(max_length = 256,blank = True)

    def __str__(self):
        return str(self.user)

至此,定义了一张player表,有两个关键字:user(用于表示player和哪个user是一一对应的)、photo(用户头像)

将player表注册到管理员页面

打开acapp/game/admin.py

from django.contrib import admin
from game.models.player.player import Player

# Register your models here.

admin.site.register(Player);

然后执行两句话,将我们的表应用到数据库里

python3 manage.py makemigrations
python3 manage.py migrate

然后登录django的管理员界面app4346.acapp.acwing.com.cn/admin/,可以看到多了一个用户组player,可以直接在这里新加一个用户试试。

如何判断前端是web端还是acapp端

export class AcGame {
    constructor(id,AcWingOS){ // acapp端会传AcWingOS(一些接口),web端不穿这个参数
        this.id = id;
        this.$ac_game = $('#' + id);
        this.AcWingOS = AcWingOS;

        this.menu = new AcGameMenu(this);
        this.playground = new AcGamePlayground(this);

        this.start();
    }
    
    start(){
    }
}

主类加一个AcWingOS参数,acapp就会传这个参数,web端只传id这个参数

client端向server端请求信息

client会向server端请求信息,要完成views、urls、js三部分

刚开始写代码,将所有的请求类型使用get来写,更容易调试。

写views的函数等

用户的信息放入acapp/game/views/settings里,未来settings里可以设置信息

acapp/game/views/settings/getinfo.py

from django.http import JsonResponse
from game.models.player.player import Player


def getinfo_acapp(request):
    player = Player.objects.all()[0]
    return JsonResponse({
            'result':'success',
            'username':player.user.username,
            'photo':player.photo,
        })

def getinfo_web(request):
    player = Player.objects.all()[0]
    return JsonResponse({
            'result':'success',
            'username':player.user.username,
            'photo':player.photo,
        })


def getinfo(request):
    platform = request.GET.get('platform')
    if platform == "ACAPP":
        return getinfo_acapp(request)
    else:
        return getinfo_web(request)

写urls:

修改acapp/game/urls/settings/index.py

from django.urls import path
from game.views.settings.getinfo import getinfo


urlpatterns = [
        path("getinfo/",getinfo,name="settings_getinfo"),
]

访问app4346.acapp.acwing.com.cn/settings/getinfo/:

image

client向server请求网址,getinfo函数返回给client信息。

写js

38:00

settings/zbase.js

渲染前端页面、向后端请求数据

写js:登录注册界面

写js、调css

传头像图片,渲染头像

实现登录、注册、退出登录动作

这三个功能都与后端有所交互,每一个都要views、urls、js一块写。

前端登录与注册的跳转

先把每个元素都“扣”出来,然后去绑定函数

“扣出来”说的是取到这个divinput这个元素,比如下面这个要扣出来ac-game-settings-login类div标签

this.$login = this.$settings.find(".ac-game-settings-login");

然后需要实现点击绑定函数:
点注册->跳转到注册界面,点登陆->到登录页面,这些是在前端做的事情

登录功能

与后端交互数据写老三样:viewsurlsjs

views是一些处理数据的函数,urls是每一个函数对应一个url、js是写前端的内容

js去携带这用户输入的账号密码,对url发送get请求,将数据通过views对应的函数发送到服务器进行验证,然后返回json结果。

退出功能

注册功能

标签:用户名,登录,getinfo,settings,acapp,Django,player,game,py
From: https://www.cnblogs.com/rdisheng/p/17151209.html

相关文章

  • Ghost XP打XP SP3后出现登录不了的问题
    昨天给一个好朋友重新安装了Xp系统,为了加快装机的速度,用的是萝卜花园的GHOST版。安装完成后,为了免除打系统补丁的等待时间,就用U盘把SP3补丁拷到他的电脑上,然后进行了安装,一......
  • Prometheus笔记-设置Basic_auth登录校验
    密码是采用bcrypt加密创建web.yml配置文件basic_auth_users: #密码生成地址:https://www.bejson.com/encrypt/bcrpyt_encode/,格式为[用户名:密码]admin:$2y$......
  • 35互联,中国频道均无法登录?
    昨晚想登录35互联,中国频道,但均报无法登录。截止目前仅​​http://service.35.com/​​​可以看到内容,其他​​http://www.35.com​​​, ​​http://www.china-channel.......
  • Django的配置文件介绍
    Django的配置文件#pathlib#3.6以后,处理文件路径的模块,原来是os,#面试题,md5是对称加密还是非对称加密 -对称加密:加密的秘钥和解密的秘钥是同一个-非对称加......
  • 路飞项目,后台日志封装,全局异常处理,封装response,luffy数据库创建,软件开发模式,user模块
    内容回顾虚拟环境两个模块virtualenv—>virtualenv.exe用来创建虚拟环境virtualenvwrapper-win—>virtualenvwrapper.bat批处理文件,命令简化命令:创建mkvirtualev......
  • Django uwsgi问题解析
    通常情况下,部署Django应用到生产环境时都会通过uwsgi部署,uwsgi一些配置项配置问题有可能会导致服务出现502状态码或者其他超时等的情况常用到的配置项如下:reload-on-as......
  • 路飞之-后台日志封装-前后端分离的rbac项目演示-全局异常处理封装-封装Response-luffy
    目录路飞之-后台日志封装-前后端分离的rbac项目演示-全局异常处理封装-封装Response-luffy数据库创建-软件开发模式-User模块用户表-django的配置文件-开启media访问今日内......
  • 17.django中的Contenttypes
     Contenttypes是一个app,将Django中的所有定义的表定义在一张表中INSTALLED_APPS=['django.contrib.admin','django.contrib.auth','django.contrib.c......
  • Django中配置文件的详细解读
    Django中配置文件的详细解读importos.pathfrompathlibimportPath#Buildpathsinsidetheprojectlikethis:BASE_DIR/'subdir'.#1.项目的根目录#/User......
  • django项目环境搭建相关
    目录1.电脑pip换源2-虚拟环境的搭建3-项目后台(luffy项目)4-luffy后台配置5-luffy数据库6-user模块User表.md1.电脑pip换源pip安装源"""1、采用国内源,加速下载模块的速......