1. 程式人生 > >edjango2.2 session配置儲存在mysql中

edjango2.2 session配置儲存在mysql中

Django的session框架預設啟用,並已經註冊在app設定內。

如果沒有開啟手動新增這兩行並執行

migrate命令建立資料表,就可以使用session了。

Django提供了一個通用的Session框架,並且可以使用多種session資料的儲存方式:儲存在資料庫內,儲存到快取,儲存到檔案內,儲存到cookie內。

編寫views.py

from django.shortcuts import render,redirect
from django.http import HttpResponse
from . import models

def index(request):
    if not request.session.get('is_login',None):
        return redirect('/login/')
    # return HttpResponse('Hello, world. You\'re at the polls index.')
    return render(request,'index.html')

def login(request):
    if request.session.get('is_login',None):
        return redirect('/')
    if request.method == "POST":         user = request.POST.get('username')         password = request.POST.get('password')         message='請檢查填寫內容!'         print('------user:%s,password:%s------'%(user,password))         if user.strip() and password:             try:                 u=models.User.objects.get(user=user)                 #a=models.table_name.objects.get(xx=xx,yy=yy)                 #返回一個數據物件.獲取資料物件的某一個屬性欄位值通過點的方式獲取如:                 print('---資料庫使用者:%s,密碼:%s,註冊日期:%s'%(u.user,u.passwd,u.c_time))             except Exception as f:                 print(f)                 message = '使用者不存在!'                 return render(request,'login/login.html',{'message':message})             if u.passwd == password:                 request.session['is_login'] = True                 request.session['user_id'] = u.id                 request.session['user_name'] = u.user                 request.session['user_email'] = u.email
                return redirect('/')             else:                 message = '密碼不正確'                 return render(request,'login/login.html',{'message':message})         return render(request,'login/login.html',{'message':message})     return render(request,'login/login.html') #通過下面的if語句,我們不允許重複登入:
# if request.session.get('is_login',None): #     return redirect("/") #session中新增資料 # request.session['is_login'] = True # request.session['user_id'] = user.id # request.session['user_name'] = user.name def register(request):     return render(request,'login/register.html') def logout(request):     if not request.session.get('is_login',None):         return redirect('/login/')     request.session.flush()     return redirect("/login/")

cat  index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>首頁</title>
</head>
<body>
<h1>{{ request.session.user_name }}!歡迎回來</h1>
<a>登入狀態:{{ request.session.is_login }}</a><br>
<a>使用者名稱稱:{{ request.session.user_name }}</a><br>
<a>使用者郵箱:{{ request.session.user_email }}</a><br>
<p>
    <a href="/logout/">登出</a>
</p>
</body>
</html>

相關推薦

edjango2.2 session配置儲存在mysql

Django的session框架預設啟用,並已經註冊在app設定內。 如果沒有開啟手動新增這兩行並執行 migrate命令

Class 15 - 2 關係型資料庫儲存 - MySQL儲存

關係型資料庫是基於關係模型的資料庫,而關係模型是通過二維表來儲存的,所以它的儲存方式 就是行列組成的表,每一列是一個欄位, 每一行是一條記錄。 表可以看作某個實體的集合,而實體之 間存在聯絡,這就需要表與表之間的關聯關係來體現, 如主鍵外來鍵的關聯關係。 多個表組成一個數據 庫,也就是關係型資料庫。關係型資料

遠程調試部署在Tomcat的應用服務(2配置方式)

tab jdk1 exe java ee center 右鍵 eclipse 找到 platform 遠程調試部署在Tomcat中的應用服務(tomcat 遠程debug 配置文件) 方法一(編輯catalina.bat) 1. D:\iVMS_Platform\bin\a

MysqlENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8怎麽轉換為sql sever2008的代碼

需要 引擎 mysq ide fault inno char 數據 排序規則 ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8轉換sql server AUTO_INCREMENT=2 ,是 自動遞增列的 初始數值 =

my.cnf配置文件mysql pid參數說明

my.cnf配置文件中mysql pidmy.cnf配置文件中mysql pid參數說明 當MySQL實例啟動時,會將自己的進程ID寫入一個文件中——該文件即為pid文件。該文件可由參數pid_file控制,默認位於數據庫目錄下,文件名為主機名.pid:mysql> show variables

MySQL組復制(2):配置單主模型的組復制

AC 文件 便在 繼續 rep 解釋 種子 nsis HR MySQL的組復制可以配置為單主模型和多主模型兩種工作模式,它們都能保證MySQL的高可用。以下是兩種工作模式的特性簡介: 單主模型:從復制組中眾多個MySQL節點中自動選舉一個master節點,只有master

weblogic.xml 配置去除urlsession

style tor log spa logic writing url ssi led <session-descriptor> <url-rewriting-enabled>false</url-rewriting-enab

docker版mysql的使用和配置2)——docker版mysql的dockerfile

啟動方式 oracl 端口號 sum war rms total htm clas 既然目標是定制滿足自己需要的dockerfile,那麽就來看看mysql的dockerfile長什麽樣。 dockerfile選擇的是 https://github.com/mysql/my

LINUX——關於mysql較詳細的,數據庫的主從配置,自動備份以及讀寫分離的使用

rep lock ast name ocs lib .cn ket ger 1.主從簡介數據在企業中是非常重要的一部分,存儲數據的數據庫多種多用樣,但卻都存在著一種隱患·數據庫數據丟失·數據庫訪問人數較多時,一臺數據庫無法保證服務質量2.主從的作用·實時災備,用於故障切換·

Kettle實現從mysql2張表數據關聯的數據,並寫入到mongodb

表數 ima 關聯 數據庫連接 查詢 ket 分享圖片 表數據 數據庫名 1 建立轉換,並設置DB連接到mysql 選中DB連接:連接類型選擇MySQL,輸入主機名稱,數據庫名稱,端口號,用戶名,密碼 輸入連接名稱,點擊確定。(可以先點擊測試,測試一下是否連接成功) 如

五十八、四、Django框架配置使用mysql

mysql命令的回顧: 注意:django框架不會自動生成mysql資料庫,所以需要手動去建立。 1、開啟wamp軟體,開始建立mysql資料庫: 2、進入虛擬環境建立django專案: 3、進入專案建立應用 4、註冊剛剛建立的應用:

SQLServer資料通過java儲存MySQL出現unicode編碼問題

雙資料來源將sqlserver中的資料匯出存入mysql時出現編碼問題,SQLServer的字集為unicode,而需要在mysql中存入utf-8的字集。   通過配置application.properties檔案,如下 #SQLServer資料庫 spring.datas

Mysql儲存過程與自定義函式的區別

建立儲存過程: CREATE [definer = {user|current_user}] PROCEDURE sp_name ([ proc_parameter [,proc_parameter ...]]) [ characteristi

學會使用MySQL自定義函式和儲存過程

一、快速瞭解什麼是儲存過程和函式?   儲存過程和函式是事先經過編譯並存儲在資料庫中的一段 SQL 語句的集合,呼叫儲存過程 和函式可以簡化應用開發人員的很多工作,減少資料在資料庫和應用伺服器之間的傳輸,對 於提高資料處理的效率是有好處的。   在對儲存過程或函式進行操作時,需要

MySql儲存過程傳參和不傳參以及java呼叫程式碼

資料庫表結構 1.mysql不傳參寫儲存過程 create procedure product() -- product為儲存過程名稱 begin select * from book; end 呼叫此儲存過程為 CALL product

mysql 建立儲存過程增強(結果從sql語句返回)

一、In只有輸入引數情況 DELIMITER $ //宣告 create procedure pro_selectById( IN  num int)    //一個引數,無返回值 begin select * from user where id =

mysql 建立儲存過程

1、定義IF迴圈以及呼叫書寫格式    DELIMITER $     ->  create procedure pro_IF(IN num INT,OUT str varchar(30))     ->

將爬取的資料儲存mysql

為了把資料儲存到mysql費了很多周折,早上再來折騰,終於折騰好了 安裝資料庫 1、pip install pymysql(根據版本來裝) 2、建立資料       開啟終端 鍵入mysql -u root -p  回車輸入密碼     &

MySql建立儲存過程

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

MySQLIP地址的儲存方式

原文地址:http://www.cnblogs.com/cnsanshao/p/3326648.html 為什麼要問如何儲存IP 首先就來闡明一下部分人得反問:為什麼要問IP得怎樣存,直接varchar型別不就得了嗎? 其實做任何程式設計都要在功能實現的基礎上最大限度的優化效能。而資料庫