Django+mysql implementa una página de inicio de sesión web simple

Tabla de contenido

1. Usa pycharm para crear un proyecto Django

2. Comience la verificación del proyecto Django

3. Configurar la base de datos mysql

1. Instale la base de datos mysql localmente

1) Instalar la base de datos mysql

2) Cree una base de datos usted mismo

2. Instalar pymysql

3. Configurar la base de datos mysql

1) Agregue _init_.py bajo el mismo nombre del paquete del proyecto

 2) En el archivo settings.py, reemplace el contenido en BASES DE DATOS

4. Migración de datos por defecto de Django

 1) Ejecutar la migración y migrar el modelo de aplicación original en el proyecto a la base de datos sincrónicamente

 2) Ver los resultados de la migración de datos

5. Cree un superadministrador en segundo plano 

 4. Inicie sesión en el sistema de fondo

1. Iniciar el servicio

2. Inicie sesión en el sistema de fondo

5. Crear una aplicación de aplicación

1. Comando para crear una aplicación

 2. Configure la aplicación en INSTALLED_APPS en la configuración

6. Configurar el enrutamiento de aplicaciones 

1. Configurar la ruta principal

2. Configurar el enrutamiento de subaplicaciones

3. Configurar vistas

Siete, crea una página html

1. Determinar si la configuración de la plantilla es correcta

 2. Cree una página html de muestra 

 8. Acceso

9. Optimice e implemente la obtención y publicación simples

1. Configurar el enrutamiento

2. Usa el método get para darte cuenta

1) Configurar la página de vistas

2) Optimizar la página de inicio de sesión

3) Mostrar los resultados

3. Usa el método de publicación para darte cuenta

1) Configurar la página de vistas

2) Optimizar la página de inicio de sesión

 3) Mostrar los resultados

 10. Continúe optimizando y utilizando el método de base de datos para el juicio de datos

1. Agregue el modelo de datos en model.py

2. Migrar el modelo de datos a la base de datos

 3. Crear datos para operaciones posteriores

 4. Modificar vistas.py

5. Verificación

11. Realizar registro

1. Página de registro

2. Configurar el enrutamiento

3. Crea un método de registro

 4. Verificación de acceso

12. Tablas de base de datos anti-mapeo a modelos django


Prefacio: este artículo implementa django para construir una página web de 0 a 1, realiza django para conectarse a la base de datos mysql, obtener y publicar solicitudes simples, etc.

1. Usa pycharm para crear un proyecto Django

Ligeramente, la versión profesional se puede crear directamente

Esta es la biblioteca de terceros creada por la inicialización

2. Comience la verificación del proyecto Django

entrada de terminal de pycharm

python manage.py runserver

 acceso:

 Pequeño episodio: Error al inicio: 'DIRS': [os.path.join(BASE_DIR, 'templates')]
NameError: el nombre 'os' no está definido

Mi solución es: import os al principio del archivo settings.py

Hay otros métodos en Internet (el blogger no lo intentó): Modifique el "'DIRS' generado por defecto: [os.path.join(BASE_DIR, 'templates')]", modifíquelo de la siguiente manera: 'DIRS': [Path (
BASE_DIR, 'plantillas')]

3. Configurar la base de datos mysql

1. Instale la base de datos mysql localmente

1) Instalar la base de datos mysql

Estoy usando 5.7.22 (mi versión), la instalación es ligeramente

2) Cree una base de datos usted mismo

Crear un nombre de base de datos: smalldjangodb

2. Instalar pymysql

pip install pymysql

3. Configurar la base de datos mysql

1) Agregue _init_.py bajo el mismo nombre del paquete del proyecto

import pymysql
pymysql.install_as_MySQLdb()

 2) En el archivo settings.py, reemplace el contenido en BASES DE DATOS

 Primero comente la configuración de la base de datos predeterminada en la siguiente figura

 Copie la siguiente parte y modifíquela.

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',#数据库的类型
'NAME': '', #所使用的的数据库的名字
'USER': 'root', #数据库服务器的用户
'PASSWORD': '', #密码
'HOST': '127.0.0.1', #主机
'PORT': '3306', #端口
}
}

4. Migración de datos por defecto de Django

 1) Ejecutar la migración y migrar el modelo de aplicación original en el proyecto a la base de datos sincrónicamente

entrada de terminal de pycharm

python manage.py migrate

 2) Ver los resultados de la migración de datos

5. Cree un superadministrador en segundo plano 

entrada de terminal de pycharm

python  manage.py createsuperuser

 Nombre de usuario, correo electrónico (ingrese casualmente, la interfaz está en el formato correcto), contraseña

El registro aquí es la supercontraseña qq+abreviatura del nombre (un registro para usted)

 4. Inicie sesión en el sistema de fondo

1. Iniciar el servicio

python manage.py runserver

2. Inicie sesión en el sistema de fondo

Utilice la cuenta de superadministración creada en el paso anterior para iniciar sesión en el sistema 

http://127.0.0.1:8000/administrador

 Página de éxito de inicio de sesión:

5. Crear una aplicación de aplicación

1. Comando para crear una aplicación

entrada de terminal de pycharm

python  manage.py startapp lucky

 

 2. Configure la aplicación en INSTALLED_APPS en la configuración

Agrega la aplicación lucky a INSTALLED_APPS en los ajustes de configuración

6. Configurar el enrutamiento de aplicaciones 

  

1. Configurar la ruta principal

 Cree un archivo de enrutamiento secundario urls.py en la carpeta de la aplicación lucky

 Cámbiala por la siguiente imagen:

 Para múltiples aplicaciones, configure múltiples rutas principales

2. Configurar el enrutamiento de subaplicaciones

 Entrada (aquí views.toLoginView se refiere al método toLoginView en las vistas de la aplicación Lucky, que se explicará en el siguiente paso):

from django.urls import path
from . import views

urlpatterns = [
    path('', views.toLoginView, name='toLoginView'),
]

3. Configurar vistas

Abra las vistas en el directorio de la suerte de la aplicación.

from django.shortcuts import render

# Create your views here.


def toLoginView(request):
    return render(request, 'login.html')

Siete, crea una página html

1. Determinar si la configuración de la plantilla es correcta

 2. Cree una página html de muestra 

Cree un login.html bajo plantillas

 8. Acceso

Iniciar dirección de acceso al servicio: http://127.0.0.1:8000/lucky/

Abierto: settings.py abre el modo de depuración 
DEBUG = Falso 
ALLOWED_HOSTS = ['127.0.0.1', 'localhost']

9. Optimice e implemente la obtención y publicación simples

1. Configurar el enrutamiento

from django.urls import path
from . import views

urlpatterns = [
    path('', views.toLoginView),
    path('index/', views.loginView),
]

2. Usa el método get para darte cuenta

1) Configurar la página de vistas

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) Optimizar la página de inicio de sesión

<!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) Mostrar los resultados

Iniciar servicio  http://127.0.0.1:8000/lucky/

 Inicio de sesión correcto

 La desventaja de la solicitud de obtención es que la contraseña de la cuenta está expuesta en la URL, por lo que el método de publicación se explicará a continuación.

3. Usa el método de publicación para darte cuenta

1) Configurar la página de vistas

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) Optimizar la página de inicio de sesión

Cambiar lo anterior para publicar

<!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) Mostrar los resultados

Iniciar servicio  http://127.0.0.1:8000/lucky/

 10. Continúe optimizando y utilizando el método de base de datos para el juicio de datos

1. Agregue el modelo de datos en model.py

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. Migrar el modelo de datos a la base de datos

Tenga en cuenta que mysql debe poder admitir el acceso en este momento

python manage.py makemigrations lucky

 Migrar datos a la base de datos mysql

python manage.py migrate

 Para la verificación de la base de datos:

 3. Crear datos para operaciones posteriores

 4. Modificar vistas.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. Verificación

 

11. Realizar registro

1. Página de registro

Crear register.html bajo plantillas 

<!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. Configurar el enrutamiento

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. Crea un método de registro

Cree el método registerView y el método toRegisterView en el archivo 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("请输入正确用户名和密码!")

# 渲染注册页面
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. Verificación de acceso

Tenga en cuenta que el nombre de la aplicación debe agregarse a la ruta de acceso, que está relacionada con la configuración de enrutamiento

Visita  http://127.0.0.1:8000/lucky/toregister/

 registración exitosa

 validación de base de datos

Este es el registro más una sentencia repetida

# 注册的逻辑判断
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("请输入完整的用户名和密码!")

12. Tablas de base de datos anti-mapeo a modelos django

Esto mapeará todas las tablas en la base de datos.

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

Supongo que te gusta

Origin blog.csdn.net/legend818/article/details/129005072
Recomendado
Clasificación