基于Django+MySQL的B/S模式云端留言系统-登录页面实现

基于Django+MySQL的B/S模式云端留言系统之登录页面

环境介绍(虚拟机):
win系统(数据存储) :
IP 192.168.5.157
MySQL
ubuntu(服务端s):
192.168.5.128
pycharm
物理机(客户端c):
浏览器

一、实现步骤

(一)数据库管理系统操作

  1. 在win中安装数据库管理系统MySQL,参考博文:MySQL数据库的安装步骤
  2. 开启MySQL远程链接的权限
  3. 在数据库管理系统MySQL中创建应用app数据存储目标数据库cucdate(数据库名)

1. 在win中安装数据库管理系统MySQL,参考博文[:MySQL数据库的安装步骤](https://blog.csdn.net/qq_28938301/article/details

下面重点介绍2 和3

2 开启MySQL远程链接的权限

MySQL数据库系统中的每个用户都有自己的用户名和密码,用于验证其身份并控制其访问权限。在MySQL中,用户信息存储在mysql.user表中。
1)使用以下命令查看用户:
select * from mysql.user
或select user from mysql.user
在这里插入图片描述 图1

2)我们在项目实现中,可以使用root 从ubuntu 连接、迁移数据到MySQL数据库中,需要root’用户开启远程连接的权限。
查看当前root的登录权限,是否允许远程登录,如图所示host属性对应的值为:locahost–说明只能本地登录
在这里插入图片描述 图2 root用户信息

修改权限操作:

①:先进入mysql数据库(虽然提示已经是mysql>)但是一般情况可能需要use mysql;然后再输入:

Update user set host=’%’ where user=’root’; #修改user表中user属性列为root的行host的值为‘%’

`在这里插入图片描述
②:执行命令:mysql>flush privileges; 授权提交

3 )在数据库管理系统MySQL中创建应用app数据存储目标数据库(数据库名)如下图中连接到stusys数据库,具体的数据库名可以根据自己创建而定

在项目根目录下的setting.py中设置连接数据库MySQL
在这里插入图片描述在应用app目录下的models.py中创建数据模型(表格式)
在这里插入图片描述
备注,如果运行后出现以下图提示
在这里插入图片描述
需要以下操作步骤:

在这里插入图片描述
在这里插入图片描述
在项目的__init__.py中设置 版本兼容

import pymysql

pymysql.version_info=(1,4,6,'final',0)
pymysql.install_as_MySQLdb()

完成以上数据库的环境部署

(二) 服务端Ubuntu服务端代码开发

1 .页面中表单元素设计(客户端页面与服务端的数据交互)

在这里插入图片描述

2 在urls.py中添加path

在这里插入图片描述

3 在views.py中书写视图函数 talk_login(进行业务处理–登录信息验证)

在验证环节需要读取表中的数据,为了保证顺利读取models .py中定义的数据表 有需要时可使用如下代码 import 导入

from .models import *   # 把模型中的表导到当前views.py中

在这里插入图片描述

1) 在给客户端渲染的html页面中增加form标签,以及 {% csrf_token %}安全

页面可通过在容器div里增加form组件,实现时需要以下几个注意点:
① action属性为点击按钮后的URL,页面提交数据method=‘POST’(如本文代码 )
② form 中的输入框组件input要有name属性,其name属性将在视图函数中用来获取客户端在该input内的输入值(如本文 ,当views函数要获取数据时,代码如下图 )

 实例:
<div class="centered"> <!--使用div定义一个中间容器 -->
         <form  action="/talk_find/login/" method="post">
             {% csrf_token %}
             <h1>欢迎进入留言系统</h1>
            <fieldset>
              <legend>
                请输入登录信息:
              </legend>
              <table>
                <tr>
                  <td>
                    用户名:
                  </td>
                  <td>
                    <input type="text" id="txtUserName" name="u" autofocus="true">
                  </td>
                </tr>
                <tr>
                  <td>密码:</td>
                  <td><input type="text" id="txtPassword" name="p"></td>
                </tr>
                <tr>
                  <td colspan="3">
                    <input type="submit" value="提交">
                    <input type="reset" value="重置">
                    <input type="button" value="注册">
                </tr>
              </table>
            </fieldset>
          </form>
③设置urls.py的path路径(form中的URL路径与视图函数的映射)

在这里插入图片描述

4 数据库现有模型(表)迁移到MySQL数据库管理系统所在的系统
在项目中目录下终端执行:
在这里插入图片描述

python3 manage.py makemigrations app(应用名)
python3 manage.py migrate

二、服务启动与测试

(一) 使用指定ip地址和端口的方式启动

python3 manage.py runserver 192.168.5.128:8000
注意:使用的IP必须与settings.py中 第28行左右 ALLOWED_HOSTS 的设置一致,ALLOWED_HOSTS = [‘192.168.5.128’,]
在这里插入图片描述

(二)views.py中函数实现

1 简单的用户信息接收不为空判断:

函数只要是客户端浏览器有输入内容,对应的URL即可看到显示的页面内容hello(本文views.py函数功能中页面只用简单的‘’HELLO‘’)

python
def talk_login(request):
   username=request.POST.get('u')
   print(username)
   userid=request.POST.get('p')
   if userid and username:
       return HttpResponse('HELLO')
   else:
       print('no')

在这里插入图片描述

2 连接MySQL进行用户名以及密码验证成功后跳转到留言提交页面

 def talk_login_au(request):
     username1 = request.POST.get('u')
     userid1= request.POST.get('p')
     get_date=userdate.objects.get(userid=userid1,username=username1) # 这里的userdate是在models.py中建立的数据模型(表的名字),userid,username是属于表的属性列部分
     if get_date:
         #return HttpResponse('HELLO')
         return render(request,'submit_message.html')
 else:
     print('no')

以上代码中的submit_message.html是所要打开的页面文档可以自行定义,也可参考:基于Django+MySQL的B/S模式云端留言系统之留言提交与查看

三、总结与知识扩展

(一) 在 Django 和 MySQL 中设计登录界面,按照以下步骤进行:

  1. 安装 Django 和 MySQL 驱动:首先,确保已安装 Django 框架和适用于 MySQL 的数据库驱动程序

  2. Django 项目和应用:使用 Django 的命令行工具创建一个新的 Django 项目,并在项目中创建一个应用(本文用前面博文中已经创建的项目)。

  3. 配置数据库连接:打开 settings.py 文件,配置 MySQL 数据库连接。

DATABASES = {
‘default’: {
‘ENGINE’: ‘django.db.backends.mysql’,
‘NAME’: ‘your_database_name’,
‘USER’: ‘your_username’,
‘PASSWORD’: ‘your_password’,
‘HOST’: ‘your_host’,
‘PORT’: ‘your_port’,
}
}

替换上述配置选项中的 your_database_nameyour_usernameyour_passwordyour_hostyour_port 分别为你的 MySQL 数据库相关信息。

  1. 创建用户模型:在 models.py 文件中定义一个用户模型,用于存储用户的登录信息。
from django.db import models
from django.contrib.auth.models import AbstractUser

class userdate(AbstractUser):
    # 添加自定义字段
    # 
    pass

这里可以 Django 内置的 AbstractUser 类来扩展用户模型,当然还可以根据需要添加其他自定义字段(本博文是采用自定义)。

  1. 迁移数据库:运行以下命令来创建数据库表格。
$ python3 manage.py makemigrations my1  # my1是对应的应用app,也可以不带,默认迁移当前项目所有的APP

$ python3 manage.py migrate

这将根据定义的模型创建相应的数据库表。
完成以上步骤后可以在MySQL看到对应的表
在这里插入图片描述

  1. 创建登录视图和模板:在 views.py 文件中创建登录视图函数,用于处理用户登录逻辑。(需直接在views.py中调用客户端页面中 form中的input组件的name 属性值来获取用户的输入)
from django.contrib.auth import authenticate, login
from django.shortcuts import render, redirect

def login_view(request):
    if request.method == 'POST':
        username = request.POST['username1']
        password = request.POST['password1']
        user = authenticate(request, username=username, password=password)
        if user is not None:
            login(request, user)
            return redirect('home')  # 登录成功后跳转到URL(PATH 中属性为home的页
        else:
            error_message = 'Invalid username or password'
    else:
        error_message = ''
    return render(request, 'login.html', {'error_message': error_message})

在上述代码中,使用 authenticate() 函数进行用户认证,如果认证成功,则使用 login() 函数登录用户,并重定向到主页。否则,显示错误消息并再次渲染登录模板。

  1. 创建登录模板:在应用的模板文件夹中创建一个名为 login.html 的模板,用于显示登录界面和处理表单提交。
<form method="post" action="{% url 'login' %}">
  {% csrf_token %}
  <label for="username">Username:</label>
  <input type="text" id="username" name="username1">
  <label for="password">Password:</label>
  <input type="password" id="password" name="password1">
  <button type="submit">Login</button>
</form>
<p>{{ error_message }}</p>

在上述模板中,使用 <form> 元素创建登录表单,表单的提交目标为登录视图的 URL。使用 {{ error_message }} 显示错误消息。

  1. 配置 URL 路由:在应用的 urls.py 文件中配置登录视图的 URL 路由。
from django.urls import path
from .views import login_view

urlpatterns = [
    path('login/', login_view, name='login'),
]

这将将 /login 路径映射到登录视图函数。

  1. 运行服务器:运行以下命令启动 Django 开发服务器。
$ python3 manage.py runserver

现在,浏览器中访问 服务器查看登录界面,并使用用户模型进行登录。

上述代码只提供了基本的登录界面设计,其中涉及了用户模型、视图函数和模板的创建。
{% url 'login' %} 是 Django 模板语言(Django Template Language)中的一个模板标签。它用于生成 URL,该 URL 对应于在 URL 配置中定义的命名 URL 模式。

在 Django 中,URL 配置文件(通常是项目文件夹中的 urls.py)定义了 URL 模式和视图函数之间的映射关系。URL 模式可以使用 name 参数进行命名。

{% url 'login' %} 中的 'login' 是一个参数,它指定了要生成 URL 的名称。它对应于 URL 配置文件中定义的具有相同名称的 URL 模式。

使用 {% url %} 模板标签,你可以避免在模板中硬编码 URL,而是通过 URL 的名称来生成 URL。这样,如果将来需要更改 URL 模式,只需更新 URL 配置文件,而不需要在模板中手动修改每个相关 URL。

例如,假设在你的应用的 URL 配置文件中有以下代码:

from django.urls import path
from .views import login_view

urlpatterns = [
    path('login/', login_view, name='login'),
]

在模板中使用 {% url 'login' %} 将生成 /login/ 的 URL。这样,如果将来需要更改登录页面的 URL,只需在 URL 配置文件中更新相应的 URL 模式即可,而不需要在模板中手动修改。

总结起来,{% url 'login' %} 用于在 Django 模板中生成与命名 URL 模式对应的 URL。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 基于DjangoMySQL的管理系统是一种Web应用程序,用于管理和处理数据。Django是一个流行的Python Web框架,它提供了许多有用的功能,如ORM(对象关系映射)和模板系统,使得开发Web应用程序变得更加容易。MySQL是一个流行的关系型数据库管理系统,它可以存储和管理大量的数据。基于DjangoMySQL的管理系统可以帮助用户轻松地管理和处理数据,包括添加、修改、删除和查询数据等操作。此外,它还可以提供一些高级功能,如数据分析和报告生成等。 ### 回答2: 基于Django MySQL的管理系统是一种基于Web的管理系统,可用于管理各种类型的数据和信息。该系统的主要功能包括数据的输入、查询、修改和删除,以及数据的统计和分析等。基于Django MySQL的管理系统具有模块化、灵活性强、可扩展性高、易于维护和管理等诸多优点。 首先,基于Django MySQL的管理系统具有模块化的结构,在系统开发和维护时,可以分别开发各个功能模块,逐步集成到系统,使得系统具有高度的可重用性。此外,该系统还提供了一些常用的数据操作接口,包括ORM、SQLAlchemy等,方便开发人员对数据进行访问和操作。 其次,该系统灵活性强,可以适应各种不同的数据和信息管理需求。用户可以自定义数据和模板,从而灵活地实现各种任务需求。同时,该系统还支持多种数据格式,包括CSV、Excel等,方便用户导入和导出数据。 再者,该系统可扩展性很高,可以根据用户需求进行功能扩展。例如,可以增加用户权限管理、数据备份、安全加密等功能,从而满足用户的各种需要。 最后,基于Django MySQL的管理系统易于维护和管理。该系统具有完善的用户权限管理系统和数据备份机制,同时还提供详细的日志记录和错误追踪功能,方便管理员及时发现问题并进行解决。 总之,基于Django MySQL的管理系统是一种十分可靠和灵活的数据管理系统,可用于各种数据和信息管理需求。同时该系统还具有高度的扩展性和易于维护和管理等优点,可以帮助企业和机构实现高效的数据管理。 ### 回答3: 基于DjangoMySQL的管理系统是一种开源的Web应用程序,它具有高效、可扩展、易于维护的特点,可用于管理任何类型的数据,如人员、客户、产品、订单等。Django是一种基于Python语言的高级Web框架,它可以使我们更加快速、简单地开发出高性能的Web应用程序。 使用DjangoMySQL开发管理系统,我们可以使用模型来定义数据模型,然后使用视图和模板系统实现业务逻辑和用户界面。模型是Django的重要组成部分,它们是用来描述数据的类,定义了数据对象的属性和方法。Django提供了ORM(对象关系映射)支持,使得我们可以用面向对象的方式来操作数据库,而不需要编写SQL语句,从而大大提高了开发效率。 在Django,我们可以使用数据库迁移来管理数据库的变化。每当我们修改模型时,Django会自动创建相应的迁移文件,它们用来记录我们所做的更改。当我们需要迁移数据库结构时,只需要运行一个简单的命令就可以完成。 此外,Django还有非常丰富的插件和组件,我们可以利用它们来实现自定义功能。Django的管理后台是其之一,它可以帮助我们快速地创建后台管理界面。我们只需使用Django的管理模块,就可以轻松地创建一个完整的后台管理系统。 总体而言,基于DjangoMySQL的管理系统是一种强大而灵活的Web应用程序,它不仅适用于小型和型企业,还适用于大型企业和组织。务必掌握好DjangoMySQL的相关知识,才能更好地开发出高质量的管理系统
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值