zoukankan      html  css  js  c++  java
  • python Django编写登录项目

    Django 目录结构:

    __init__.py 文件:

    import pymysql
    
    pymysql.install_as_MySQLdb()

    注意:如果 import pymysql 的时候报红,请安装 pymysql

     

    输入 cmd 回车


     setting.py 文件 配置 mysql 数据库:

    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',
            'NAME': 'magriculture',  # 确保数据库已经存在
            'HOST': '127.0.0.1',
            'PORT': '3306',
            'USER': 'root',
            'PASSWORD': '123456',
        }
    }

    model.py 文件 创建数据表:

    from django.db import models
    
    
    # Create your models here.
    
    # 创建管理员表
    class Administrator(models.Model):
        username = models.CharField(max_length=32)
        password = models.CharField(max_length=32)
    
    
    class EnvironmentalData(models.Model):
        device_id = models.CharField(max_length=32)
        name = models.CharField(max_length=32)
        device_type = models.CharField(max_length=32)
        transfer_type = models.CharField(max_length=32)
        device_value = models.CharField(max_length=32)
        timestamp = models.CharField(max_length=32)

    控制台语句生成数据表:

    python manage.py makemigrations
    
    python manage.py migrate

    url.py 文件 添加路由:

    from django.contrib import admin
    from django.urls import path
    from mAgriculture import views
    
    urlpatterns = [
        path('admin/', admin.site.urls),
        path('login.html', views.login),
        path('index.html', views.index),
    ]

    view.py 文件:

    from django.shortcuts import render, HttpResponse, redirect
    from mAgriculture import models
    
    
    # Create your views here.
    
    def login(request):
        # 登录
        if request.method == 'POST':
            # 如果是post请求 获取用户名和密码
            name = request.POST.get('uid')
            pwd = request.POST.get('pwd')
            # 去数据库比对
            c = models.Administrator.objects.filter(username=name, password=pwd)
            if c:
                # 如果有,重定向到主页
                rep = redirect('/index.html')
                # 登陆成功 创建 cookie 存储用户名
                rep.set_cookie('username', name)
                # 返回
                return rep
            else:
                # 如果没有注册 返回登录界面
                return render(request, 'login.html', {'text': '用户名或密码错误!'})
        # 如果不是post请求 返回登录界面
        return render(request, 'login.html')
    
    
    def index(request):
        # 主页
        # 获取cookie中存储的用户名
        name = request.COOKIES.get('username')
        # 如果有
        if name:
            # 返回主页面
            return render(request,'index.html')
        else:
            # 如果没有登陆成功直接进主页,重定向,先登录去!
            return redirect('/login.html')
    【版权声明】本博文著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处!
    【重要说明】本文为本菜鸟的学习记录,论点和观点仅代表个人不代表此技术的真理,目的是学习和可能成为向别人分享的经验,因此有错误会虚心接受改正,但不代表此时博文无误!
    【博客园地址】JayveeWong: http://www.cnblogs.com/wjw1014
    【CSDN地址】JayveeWong: https://blog.csdn.net/weixin_42776111
    【Gitee地址】Jayvee:https://gitee.com/wjw1014
    【GitHub地址】Jayvee:https://github.com/wjw1014
  • 相关阅读:
    转载:如何在 ES5 环境下实现一个const
    vue-element-admin中public中json中的代码没有打包到线上
    cordova打包vue2(webpack)android、ios app
    Cordova开发App入门之创建android项目
    vuex的理解
    Vue中的computed属性
    yarn 常用命令(基于vue框架)
    npm和yarn的使用对比
    npm常用命令
    asp.net ashx一般处理程序实现async await异步操作
  • 原文地址:https://www.cnblogs.com/wjw1014/p/8659284.html
Copyright © 2011-2022 走看看