目录

一、使用pyacharm创建一个django项目

二、启动django项目验证

三、配置mysql数据库

1、本地安装mysql数据库

1)安装mysql数据库

2)自己创建一个数据库

2、安装 pymysql

3、配置mysql数据库

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

 2)在settings.py文件中,把DATABASES中的内容换掉

4、django默认数据迁移

 1)执行迁移,将项目中原有的应用的模型同步迁移到数据库

 2)查看数据迁移结果

5、创建一个后台超级管理员 

 四、登录后台系统

1、启动服务

2、登录后台系统

五、创建app应用

1、命令创建应用

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

六、配置应用路由 

1、配置主路由

2、配置子应用路由

3、配置views

七、创建html页面

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

 2、创建一个示例html页面 

 八、访问

九、优化实现简单的get与post

1、配置路由

2、使用get方式实现

1)配置views页面

2)优化登录页面

3)展示成果

3、使用post方式实现

1)配置views页面

2)优化登录页面

 3)展示成果

 十、继续优化,使用数据库方式进行数据判断

1、在model.py当中添加数据模型

2、将数据模型迁移到数据库

 3、创建数据进行后续操作

 4、修改views.py

5、验证

十一、实现注册

1、注册页面

2、配置路由

3、创建注册方法

 4、访问验证

十二、数据库表反映射到django的models


前言:本文从0到1实现django搭建一个web页面,实现了django连接mysql数据库,简单的get、post请求等

一、使用pyacharm创建一个django项目

略,专业版直接创建即可

这是初始化创建的第三方库

django+mysql实现一个简单的web登录页面

二、启动django项目验证

pycharm的terminal输入

python manage.py runserver

django+mysql实现一个简单的web登录页面

 访问:

django+mysql实现一个简单的web登录页面

 小插曲:在启动的时候报错:‘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数据库

1、本地安装mysql数据库

1)安装mysql数据库

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

2)自己创建一个数据库

创建一个数据库名称:   smalldjangodb

2、安装 pymysql

pip install pymysql

django+mysql实现一个简单的web登录页面

3、配置mysql数据库

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

import pymysql
pymysql.install_as_MySQLdb()

django+mysql实现一个简单的web登录页面

 2)在settings.py文件中,把DATABASES中的内容换掉

 先注释掉默认的数据库配置下图部分

django+mysql实现一个简单的web登录页面

 将下面部分复制进去,然后进行修改

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

4、django默认数据迁移

 1)执行迁移,将项目中原有的应用的模型同步迁移到数据库

pycharm的terminal输入

python manage.py migrate

django+mysql实现一个简单的web登录页面

 2)查看数据迁移结果

django+mysql实现一个简单的web登录页面

5、创建一个后台超级管理员 

pycharm的terminal输入

python  manage.py createsuperuser

 用户名、邮箱(随便输,格式正确接口)、密码

这里注册的是super 密码qq+名字简写(给自己一个记录)

django+mysql实现一个简单的web登录页面

 四、登录后台系统

1、启动服务

python manage.py runserver

2、登录后台系统

使用上一步创建的超管账户登录系统 

http://127.0.0.1:8000/admin

django+mysql实现一个简单的web登录页面

 登录成功页面:

django+mysql实现一个简单的web登录页面

五、创建app应用

1、命令创建应用

pycharm的terminal输入

python  manage.py startapp lucky

 django+mysql实现一个简单的web登录页面

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

将应用lucky加到配置settings中的INSTALLED_APPS

django+mysql实现一个简单的web登录页面

六、配置应用路由 

1、配置主路由

 在应用文件夹lucky下面创建一个子路由文件urls.py

django+mysql实现一个简单的web登录页面

 改成如下图:

django+mysql实现一个简单的web登录页面

 多个应用的话,配置多个主路由

2、配置子应用路由

django+mysql实现一个简单的web登录页面

 输入(这里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')

七、创建html页面

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

django+mysql实现一个简单的web登录页面

 2、创建一个示例html页面 

在templates下创建一个login.html

django+mysql实现一个简单的web登录页面

 八、访问

启动服务访问地址:http://127.0.0.1:8000/lucky/

django+mysql实现一个简单的web登录页面

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

九、优化实现简单的get与post

1、配置路由

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

2、使用get方式实现

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)优化登录页面

<!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/

django+mysql实现一个简单的web登录页面

 登录成功

django+mysql实现一个简单的web登录页面

 get请求的缺点是账户密码暴露在URL,所有下面讲解post方式

3、使用post方式实现

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)优化登录页面

将上面的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/

django+mysql实现一个简单的web登录页面

 十、继续优化,使用数据库方式进行数据判断

1、在model.py当中添加数据模型

django+mysql实现一个简单的web登录页面

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、将数据模型迁移到数据库

注意mysql此时要能支持访问

python manage.py makemigrations lucky

django+mysql实现一个简单的web登录页面

 将数据迁移到mysql数据库

python manage.py migrate

django+mysql实现一个简单的web登录页面

 到数据库验证:

django+mysql实现一个简单的web登录页面

 3、创建数据进行后续操作

 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、验证

django+mysql实现一个简单的web登录页面

 django+mysql实现一个简单的web登录页面

十一、实现注册

1、注册页面

django+mysql实现一个简单的web登录页面

在templates下创建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、创建注册方法

到views.py文件当中创建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/

django+mysql实现一个简单的web登录页面

 注册成功

django+mysql实现一个简单的web登录页面

 数据库验证

django+mysql实现一个简单的web登录页面

这个是注册加了一个重复的判断

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

十二、数据库表反映射到django的models

这个会将数据库当中的全部表都映射过来

# lucky 是django的应用名
python manage.py inspectdb>lucky/models.py
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。