Django(7)-项目实战-发布会管理

news2024/10/6 10:53:02

登录功能

模板页面

sign/templates/index.html

<!DOCTYPE html>
<html>
<head>
  <title>Login Page</title>
</head>
<body>
  <h1>发布会管理</h1>
  <form action="/login/" method="post">
    <label for="username">Username:</label>
    <input type="text" id="username" name="username" required><br><br>

    <label for="password">Password:</label>
    <input type="password" id="password" name="password" required><br><br>

    <button id="btn" type="submit">登录</button>
      {% csrf_token %}
  </form>
</body>

</html>

备注:

 CSRF verification failed. Request aborted.

 表格需要加一个 {% csrf_token %} 的标签。csrf 全称是 Cross Site Request Forgery。这是 Django 提供的防止伪装提交请求的功能。POST 方法提交的表格,必须有此标签。

再次使用POST请求,可以看到客户端提交带有一个token值

 

 登录视图

from django.http import HttpResponse, Http404
from django.shortcuts import render

# Create your views here.
def index(request):
    return render(request,"index.html")

def login(request):
    if request.method=='POST':
        username=request.POST.get("username",'')
        password=request.POST.get("password",'')
        if username=='admin' and password=="admin123":
            return HttpResponse("登录成功")
        else:
            return render(request,'index.html',context={'error':'username or password error!'})

向服务器提交请求时,服务器可以通过request获取用户提交值

如获取POST请求中提交的name为username的值

<input type="text" id="username" name="username" required><br><br>
request.POST["username"]  

或者 request.POST.get('username','')

获取请求名称:request.method 

这里用返回了一个字符串

return HttpResponse("登录成功")

 事件管理

模板页面

sign/templatesevent_manage.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Event Manage Page</title>
</head>
<body>
<h1>嗨 {{user}} 欢迎</h1>

</body>
</html>

视图函数

from django.http import HttpResponse, Http404,HttpResponseRedirect
from django.shortcuts import render

# Create your views here.
def index(request):
    return render(request,"index.html")

def login(request):
    if request.method=='POST':
        username=request.POST.get("username",'')
        password=request.POST.get("password",'')
        if username=='admin' and password=="admin123":
            response=HttpResponseRedirect('/event_manage/')
            response.set_cookie('user',username,3600)
            return response
        else:
            return render(request,'index.html',context={'error':'username or password error!'})

def event_manage(request):
    username=request.COOKIES.get('user','')
    return render(request,'event_manage.html',{"user":username})

httpresponserediect为重定向,登录后页面被重定向至实践管理页面

 

 

这里采用response.set_cookie方法为客户端设置了cookie user=username

使用request.COOKIES.get()方法获取到客户端访问时带的cookie。

如果想给模板传值,需要在render第三个参数提供字典,字段名:值,

在模板中采用双引号{{字段名}}读取返回值。

也可以使用session

response.session["user"]=username

 

 

要用sesssion需要创建django自带的数据表session

 控制台执行python manage.py migrate

 重新登陆,可以看到设置的sessionid

 使用django认证

创建一个admin用户,这里用的是django自带的管理员账号功能。

 运行项目,访问http://127.0.0.1:8000/admin

使用创建的账号登录,并创建一个user

 

 修改登录函数使用django的认证

 输入正确账号密码可以登录,输出不存在账号密码登录失败。

设置视图仅登录后可用

设置装饰loginrequired后,直接访问视图会报错

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/939498.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Flask加amis学校管理系统java学生教务信息jsp源代码Mysql

本项目为前几天收费帮学妹做的一个项目&#xff0c;Java EE JSP项目&#xff0c;在工作环境中基本使用不到&#xff0c;但是很多学校把这个当作编程入门的项目来做&#xff0c;故分享出本项目供初学者参考。 一、项目描述 Flask加amis学校管理系统 系统有3权限&#xff1a;学…

lnmp架构-mysql1

1.MySQL数据库编译 make完之后是这样的 mysql 初始化 所有这种默认不在系统环境中的路径里 就这样加 这样就可以直接调用 不用输入路径调用 2.初始化 重置密码 3.mysql主从复制 配置master 配置slave 当master 端中还没有插入数据时 在server2 上配slave 此时master 还没进…

【java基础——interface接口】

JAVA基础 interface接口 文章目录 JAVA基础接口 Interface 接口 Interface 接口是一种特殊的抽象类&#xff0c;它定义了一组抽象方法和常量&#xff0c;并且不包含具体实现。 只允许声明静态常量&#xff1a;必须且默认为 public static final 。声明抽象方法&#xff1a;必…

数据结构1

数据结构是计算机科学中存储和组织数据的一种方式&#xff0c;它定义了数据的表示方式和对数据进行操作的方法&#xff0c;常见的数据结构包括数组、栈、链表、队列、树、图等。 目录 一、常见的数据结构 1.数组 2.栈 3.队列 4.链表 5.树 6.图 一、常见的数据结构 1.数…

H5 + C3基础(五)(seo相关标签 顶部快捷栏实践 Logo seo)

seo相关标签 & 顶部快捷栏实践 seo相关标签titledescriptionkeywords 顶部快捷栏实践Logo seo seo相关标签 seo&#xff1a;搜索引擎优化&#xff0c;是一种利用搜索引擎规则提高网站在搜索引擎结果中自然排名的方式&#xff0c;进而提高网站的自然流量。 前端开发中主要s…

【Tkinter系列01/15】界面初步和布局

一、说明 一般来说&#xff0c;界面开发中&#xff0c;如果不是大型的软件&#xff0c;就不必用QT之类的实现&#xff0c;用Tkinter已经足够&#xff0c;然而即便是Tkinter规模不大&#xff0c;也需要一个系统专业的学习过程&#xff0c;本篇将是对Tkinter系列介绍的一篇博文。…

JavaSE(下)

一、集合进阶 双列集合Map<>【Java】Map集合概述 双列集合特点 Map常见API 三种遍历方式 1、由键找值,创建键的集合 2、通过键值对对对象进行遍历 3、利用lambda表达式进行遍历 HashMap HashMap的特点 HashMap的底层 总结 例题 package com.itheima.Mapdemo;import java.…

探索音视频出海的无限可能|中企出海领袖班第八期成功举办

​近年来&#xff0c;音视频社交出海赛道的热度吸引了众多企业纷纷进军海外市场。然而&#xff0c;面对复杂多变的海外市场&#xff0c;无论是产品的本地化策略&#xff0c;还是对海外网络环境的适应以及网络安全防御等因素&#xff0c;都成为决定产品能否在海外市场脱颖而出的…

Error while validating pooled Jedis object.

如何处理 jedis得连接池得异常&#xff0c;顺着找到Jedis的工厂类JedisFactory&#xff0c;对应看下这两个方法的实现&#xff0c;熟悉的代码找到了&#xff0c;可疑的点也找到了&#xff1a; public boolean validateObject(PooledObject<Jedis> pooledJedis) {final Bi…

widnows 制作winpe启动盘

下载 官网 大白菜官网,大白菜winpe,大白菜U盘装系统, u盘启动盘制作工具 点击装机版&#xff0c;进行下载&#xff0c;等待下载完成 安装 解压 双击exe运行 插入u盘 识别到的u盘 点击【一键制作成usb启动盘】 点击确定&#xff0c;等待制作完成 重启电脑&#xff0c;选择从…

问道管理:市盈率市净率两个指标含义怎么算?

市盈率和市净率是出资领域常用的两个目标&#xff0c;用于评价公司的估值和出资的报答状况。本文将从多个视点剖析这两个目标的含义和计算方法&#xff0c;帮助读者更好地了解和运用它们。首先&#xff0c;市盈率&#xff08;P/E ratio&#xff09;是用来衡量公司股票价格与每股…

【Win10安装NVIDIA驱动、CUDA、CUDNN】

Win10安装NVIDIA驱动、CUDA、CUDNN 1 NVIDIA驱动下载2 下载CUDA2.1 查看CUDA版本2.2 下载并安装CUDA 3 下载并安装CUDNN3.1 输入账号和密码后&#xff0c;登录CUDNN官方网站进行下载3.2 安装3.2.1 解压下载的压缩包3.2.2 将解压后bin目录的内容全部放到CUDA对应的bin目录3.2.3 …

银河麒麟V10(Tercel)服务器版安装 Docker

一、服务器环境 ## 查看系统版本&#xff0c;确认版本 cat /etc/kylin-release Kylin Linux Advanced Server release V10 (Tercel)## 操作系统 uname -p aarch64## 内核版本&#xff08;≥ 3.10&#xff09; uname -r 4.19.90-21.2.ky10.aarch64## iptables 版本&#xff08;…

基于JavaFX的贪吃蛇小游戏

游戏背景介绍 贪吃蛇游戏是一款经典的小游戏&#xff0c;它的玩法很简单&#xff0c;就是控制蛇吃食物&#xff0c;每吃一个食物蛇的长度就会加一&#xff0c;直到蛇撞到墙壁或者撞到自己时游戏结束&#xff0c;最终的得分是蛇的长度减一。 JavaFX 用Java开发桌面端首选就是J…

姿态角 IMU 地磁

阅读前请看一下&#xff1a;我是一个热衷于记录的人&#xff0c;每次写博客会反复研读&#xff0c;尽量不断提升博客质量。文章设置为仅粉丝可见&#xff0c;是因为写博客确实花了不少精力。希望互相进步谢谢&#xff01;&#xff01; 文章目录 阅读前请看一下&#xff1a;我是…

Fedora Linux 的家族(一):官方版本

导读本文将对 Fedora Linux 官方版本进行更详细的介绍。共有五个 版本&#xff1a; Fedora Workstation、Fedora Server、Fedora IoT、Fedora CoreOS 和 Fedora Silverblue。Fedora Linux 下载页面目前显示其中三个为 官方 版本&#xff0c;另外两个为 新兴 版本。本文将涵盖所…

计算机毕设 基于深度学习的图像超分辨率重建 - opencv python cnn

文章目录 0 前言1 什么是图像超分辨率重建2 应用场景3 实现方法4 SRResNet算法原理5 SRCNN设计思路6 代码实现6.1 代码结构组织6.2 train_srresnet6.3 训练效果 7 最后 0 前言 &#x1f525; 这两年开始毕业设计和毕业答辩的要求和难度不断提升&#xff0c;传统的毕设题目缺少…

1.4 编写简易ShellCode弹窗

在前面的章节中相信读者已经学会了使用Metasploit工具生成自己的ShellCode代码片段了&#xff0c;本章将继续深入探索关于ShellCode的相关知识体系&#xff0c;ShellCode 通常是指一个原始的可执行代码的有效载荷&#xff0c;攻击者通常会使用这段代码来获得被攻陷系统上的交互…

市值暴跌后,每日优鲜能否靠2亿融资“续命”?

濒临破产退市的每日优鲜&#xff0c;靠转型实现“自救”&#xff1f; 作为“生鲜电商第一股”&#xff0c;每日优鲜在上市1年后爆发生存危机。 8月4日&#xff0c;每日优鲜(NDAQ:MF)公布了2022年报&#xff0c;尽管去年7月其宣布关闭营收占比约90%的DWM业务&#xff0c;全面终…

每日一题——柱状图中最大的矩形

柱状图中最大的矩形 题目链接 用什么数据结构&#xff1f; 要得到柱状图中最大的矩形&#xff0c;我们就必须要知道对于每一个高度heights[i]&#xff0c;他所能勾勒出的矩形最大是多少&#xff08;即宽度最大是多少&#xff09;。 而对应到图上我们可以知道&#xff0c;要知…