欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

利用django和mysql實現(xiàn)一個簡單的web登錄頁面

 更新時間:2023年05月13日 12:14:16   作者:春天的菠菜  
這篇文章主要給大家介紹了關于如何利用django和mysql實現(xiàn)一個簡單的web登錄頁面的相關資料,文中通過圖文以及實例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

前言:

本文從0到1實現(xiàn)django搭建一個web頁面,實現(xiàn)了django連接mysql數(shù)據庫,簡單的get、post請求等

一、使用pyacharm創(chuàng)建一個django項目

略,專業(yè)版直接創(chuàng)建即可

這是初始化創(chuàng)建的第三方庫

二、啟動django項目驗證

pycharm的terminal輸入

python manage.py runserver

 訪問:

 小插曲:在啟動的時候報錯:‘DIRS’: [os.path.join(BASE_DIR, ‘templates’)]
NameError: name ‘os’ is not defined

我的解決方法是:在settings.py文件頭部  import os

網絡上還有其他方法(博主沒有去試):修改默認生成的“‘DIRS’: [os.path.join(BASE_DIR, ‘templates’)]”,修改如下:
‘DIRS’: [Path(BASE_DIR, ‘templates’)]

三、配置mysql數(shù)據庫

1、本地安裝mysql數(shù)據庫

1)安裝mysql數(shù)據庫

我使用的是5.7.22(我的版本),安裝略

2)自己創(chuàng)建一個數(shù)據庫

創(chuàng)建一個數(shù)據庫名稱:   smalldjangodb

2、安裝 pymysql

pip install pymysql

3、配置mysql數(shù)據庫

1)在項目同名包下的_init_.py里面添加

import pymysql
pymysql.install_as_MySQLdb()

 2)在settings.py文件中,把DATABASES中的內容換掉

 先注釋掉默認的數(shù)據庫配置下圖部分

 將下面部分復制進去,然后進行修改

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',#數(shù)據庫的類型
'NAME': '', #所使用的的數(shù)據庫的名字
'USER': 'root', #數(shù)據庫服務器的用戶
'PASSWORD': '', #密碼
'HOST': '127.0.0.1', #主機
'PORT': '3306', #端口
}
}

4、django默認數(shù)據遷移

 1)執(zhí)行遷移,將項目中原有的應用的模型同步遷移到數(shù)據庫

pycharm的terminal輸入

python manage.py migrate

 2)查看數(shù)據遷移結果

5、創(chuàng)建一個后臺超級管理員 

pycharm的terminal輸入

python manage.py createsuperuser

 用戶名、郵箱(隨便輸,格式正確接口)、密碼

這里注冊的是super 密碼qq+名字簡寫(給自己一個記錄)

 四、登錄后臺系統(tǒng)

1、啟動服務

python manage.py runserver

2、登錄后臺系統(tǒng)

使用上一步創(chuàng)建的超管賬戶登錄系統(tǒng) 

http://127.0.0.1:8000/admin

 登錄成功頁面:

五、創(chuàng)建app應用

1、命令創(chuàng)建應用

pycharm的terminal輸入

python manage.py startapp lucky

2、在settings中的INSTALLED_APPS中配置應用

將應用lucky加到配置settings中的INSTALLED_APPS

六、配置應用路由 

1、配置主路由

 在應用文件夾lucky下面創(chuàng)建一個子路由文件urls.py

 改成如下圖:

 多個應用的話,配置多個主路由

2、配置子應用路由

 輸入(這里views.toLoginView指的是lucky應用下views里面的方法toLoginView,下一步會說明):

from django.urls import path
from . import views
 
urlpatterns = [
    path('', views.toLoginView, name='toLoginView'),
]

3、配置views

打開應用lucky目錄下的views

from django.shortcuts import render
 
# Create your views here.
 
 
def toLoginView(request):
    return render(request, 'login.html')

七、創(chuàng)建html頁面

1、確定模版配置是否正確

2、創(chuàng)建一個示例html頁面 

在templates下創(chuàng)建一個login.html

八、訪問

啟動服務訪問地址:http://127.0.0.1:8000/lucky/

開啟:settings.py開啟debug模式
DEBUG = False
ALLOWED_HOSTS = ['127.0.0.1', 'localhost']

九、優(yōu)化實現(xiàn)簡單的get與post

1、配置路由

from django.urls import path
from . import views
urlpatterns = [
    path('', views.toLoginView),
    path('index/', views.loginView),
]

2、使用get方式實現(xiàn)

1)配置views頁面

from django.http import HttpResponse
from django.shortcuts import render
 
# Create your views here.
 
 
def toLoginView(request):
    return render(request, 'login.html')
 
def loginView(request):
    username = request.GET.get('user', '') # 后面的''表示獲取不到user就賦值空
    password = request.GET.get('pwd', '')
    if username and password:
        return HttpResponse("登錄成功")
    else:
        return HttpResponse("登錄失敗")

2)優(yōu)化登錄頁面

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>登錄</title>
</head>
<body>
 
<form action="/lucky/index/" method="get">
    <p><label>用戶名:</label><input name="user" /></p>
    <p><label>密碼:</label><input name="pwd" /></p>
    <input type="submit" value="登錄">
 
</form>
 
 
</body>
</html>

3)展示成果

啟動服務 http://127.0.0.1:8000/lucky/

 登錄成功

 get請求的缺點是賬戶密碼暴露在URL,所有下面講解post方式

3、使用post方式實現(xiàn)

1)配置views頁面

from django.http import HttpResponse
from django.shortcuts import render
 
# Create your views here.
 
 
def toLoginView(request):
    return render(request, 'login.html')
 
def loginView(request):
    username = request.POST.get('user', '') # 后面的''表示獲取不到user就賦值空
    password = request.POST.get('pwd', '')
    # if username=='admin' and password=='1':
    if username and password:
        return HttpResponse("登錄成功")
    else:
        return HttpResponse("登錄失敗")

2)優(yōu)化登錄頁面

將上面的get修改為post即可

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>登錄</title>
</head>
<body>
<form action="/lucky/index/" method="post">
    <p><label>用戶名:</label><input name="user" /></p>
    <p><label>密碼:</label><input name="pwd" /></p>
    <input type="submit" value="登錄">
</form>
</body>
</html>

 3)展示成果

啟動服務 http://127.0.0.1:8000/lucky/

十、繼續(xù)優(yōu)化,使用數(shù)據庫方式進行數(shù)據判斷

1、在model.py當中添加數(shù)據模型

from django.db import models
 
# Create your models here.
 
class UserInfo(models.Model):
    id = models.CharField(primary_key=True,max_length=20)
    name = models.CharField(max_length=20)
    password = models.CharField(max_length=20)

2、將數(shù)據模型遷移到數(shù)據庫

注意mysql此時要能支持訪問

python manage.py makemigrations lucky

 將數(shù)據遷移到mysql數(shù)據庫

python manage.py migrate

 到數(shù)據庫驗證:

3、創(chuàng)建數(shù)據進行后續(xù)操作

4、修改views.py

from django.http import HttpResponse
from django.shortcuts import render
from .models import *
 
# Create your views here.
 
 
def toLoginView(request):
    return render(request, 'login.html')
 
def loginView(request):
    user_name = request.POST.get('user', '') # 后面的''表示獲取不到user就賦值空
    pass_word = request.POST.get('pwd', '')
    # if user_name=='admin' and pass_word=='1':
    if user_name and pass_word:
        exit_user =UserInfo.objects.filter(name= user_name,password = pass_word).count()
        if exit_user >= 1:
            return HttpResponse("登錄成功!")
        else:
            return HttpResponse("帳號密碼錯誤!")
    else:
        return HttpResponse("請輸入正確用戶名和密碼!")

5、驗證

十一、實現(xiàn)注冊

1、注冊頁面

在templates下創(chuàng)建register.html 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>注冊</title>
</head>
<body>
<form action="/lucky/register/" method="post">
    {% csrf_token %}
    <p><label>用戶名:</label><input name="user" /></p>
    <p><label>密碼:</label><input name="pwd" /></p>
    <input type="submit" value="注冊">
</form>
</body>
</html>

2、配置路由

from django.urls import path
from . import views
urlpatterns = [
    path('', views.toLoginView),
    path('index/', views.loginView),
    path('toregister/', views.toRegisterView),
    path('register/', views.registerView),
]

3、創(chuàng)建注冊方法

到views.py文件當中創(chuàng)建registerView方法和toRegisterView方法

from django.http import HttpResponse
from django.shortcuts import render
from .models import *
 
# Create your views here.
 
 
def toLoginView(request):
    return render(request, 'login.html')
 
def loginView(request):
    user_name = request.POST.get('user', '') # 后面的''表示獲取不到user就賦值空
    pass_word = request.POST.get('pwd', '')
    # if user_name=='admin' and pass_word=='1':
    if user_name and pass_word:
        exit_user = UserInfo.objects.filter(name=user_name, password=pass_word).count()
        if exit_user >= 1:
            return HttpResponse("登錄成功!")
        else:
            return HttpResponse("帳號密碼錯誤!")
    else:
        return HttpResponse("請輸入正確用戶名和密碼!")
 
# 渲染注冊頁面
def toRegisterView(request):
    return render(request, 'register.html')
 
# 注冊的邏輯判斷
def registerView(request):
    user_name = request.POST.get('user', '')
    pass_word = request.POST.get('pwd', '')
    if user_name and pass_word:
        register_user = UserInfo(name=user_name, password=pass_word)
        register_user.save()
        return HttpResponse("注冊成功!")
    else:
        return HttpResponse("請輸入完整的用戶名和密碼!")

4、訪問驗證

注意訪問路徑要加應用名字,這個路由配置有關

訪問 http://127.0.0.1:8000/lucky/toregister/

 注冊成功

 數(shù)據庫驗證

這個是注冊加了一個重復的判斷

# 注冊的邏輯判斷
def registerView(request):
    user_name = request.POST.get('user', '')
    pass_word = request.POST.get('pwd', '')
    if user_name and pass_word:
        exit_user = UserInfo.objects.filter(name=user_name).count()        
        if exit_user:
            return HttpResponse("對不起,當前賬戶已存在!請換一個id注冊")
        else:
            register_user = UserInfo(name=user_name, password=pass_word)
            register_user.save()
            return HttpResponse("注冊成功!")
    else:
        return HttpResponse("請輸入完整的用戶名和密碼!")

十二、數(shù)據庫表反映射到django的models

這個會將數(shù)據庫當中的全部表都映射過來

# lucky 是django的應用名
python manage.py inspectdb>lucky/models.py

總結

到此這篇關于利用django和mysql實現(xiàn)一個簡單的web登錄頁面的文章就介紹到這了,更多相關django mysql實現(xiàn)web登錄頁面內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 淺談Tensorflow模型的保存與恢復加載

    淺談Tensorflow模型的保存與恢復加載

    本篇文章主要介紹了淺談Tensorflow模型的保存與恢復加載,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-04-04
  • python xml解析實例詳解

    python xml解析實例詳解

    這篇文章主要介紹了python xml解析實例詳解的相關資料,這里舉例說明如何實現(xiàn),需要的朋友可以參考下
    2016-11-11
  • 進一步了解Python中的XML 工具

    進一步了解Python中的XML 工具

    這篇文章主要介紹了更為深入的的Python中的XML工具,本文來自于IBM官方開發(fā)者技術文檔,需要的朋友可以參考下
    2015-04-04
  • Python如何把字典寫入到CSV文件的方法示例

    Python如何把字典寫入到CSV文件的方法示例

    這篇文章主要介紹了Python如何把字典寫入到CSV文件的方法示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-08-08
  • Python中使用threading.Event協(xié)調線程的運行詳解

    Python中使用threading.Event協(xié)調線程的運行詳解

    這篇文章主要介紹了Python中使用threading.Event協(xié)調線程的運行詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • 解決pycharm 格式報錯tabs和space不一致問題

    解決pycharm 格式報錯tabs和space不一致問題

    這篇文章主要介紹了解決pycharm 格式報錯tabs和space不一致問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • Python list列表刪除元素的4種方法

    Python list列表刪除元素的4種方法

    本文主要介紹了Python list列表刪除元素的4種方法,主要包括del、pop、remove、clear,具有一定的參考價值,感興趣的可以了解一下
    2021-11-11
  • Python比較文件夾比另一同名文件夾多出的文件并復制出來的方法

    Python比較文件夾比另一同名文件夾多出的文件并復制出來的方法

    這篇文章主要介紹了Python比較文件夾比另一同名文件夾多出的文件并復制出來的方法,涉及Python針對文件與文件夾的操作技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-03-03
  • 最新anaconda安裝配置教程

    最新anaconda安裝配置教程

    Anaconda是一個開源的Python發(fā)行版本,包括Conda、Python以及一大堆安裝好的工具包,比如:numpy、pandas等,這篇文章主要介紹了最新anaconda安裝配置教程,需要的朋友可以參考下
    2023-04-04
  • Python實現(xiàn)微信機器人的方法

    Python實現(xiàn)微信機器人的方法

    這篇文章主要介紹了Python實現(xiàn)微信機器人的方法,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-09-09

最新評論