DJANGO学习笔记-项目篇(云笔记项目)

1. 项目介绍

1.1 云笔记项目

  • 项目介绍:用户可在该系统中记录自己的日常学习/旅游笔记,用户的数据将被安全的存储在云笔记平台;用户与用户之间数据为隔离存储(用户只有在登陆后才能使用相关笔记功能,且只能查阅自己的笔记内容)

1.2 功能拆解

  • 用户模块
    • 注册 - 成为平台用户
    • 登陆 - 校验用户身份
    • 退出登陆 - 退出登陆状态
  • 笔记模块
    • 查看笔记列表 - 查
    • 创建新笔记 - 增
    • 修改笔记 - 改
    • 删除笔记 - 删

2. 项目配置

2.1 项目创建

  • 进入命令行,输入django-admin start project Note创建项目
  • 创建子应用:命令行切换到应用目录下,输入python manage.py startapp user创建子应用
  • 项目配置
    • 注册子应用:在settings.py文件中的INSTALLED_APPS中将创建的子应用添加进去
      INSTALLED_APPS = [
          'django.contrib.admin',
          'django.contrib.auth',
          'django.contrib.contenttypes',
          'django.contrib.sessions',
          'django.contrib.messages',
          'django.contrib.staticfiles',
          'user', #将user注册
      ]
      
    • 禁用csrf
      MIDDLEWARE = [
          'django.middleware.security.SecurityMiddleware',
          'django.contrib.sessions.middleware.SessionMiddleware',
          'django.middleware.common.CommonMiddleware',
          # 'django.middleware.csrf.CsrfViewMiddleware',
          'django.contrib.auth.middleware.AuthenticationMiddleware',
          'django.contrib.messages.middleware.MessageMiddleware',
          'django.middleware.clickjacking.XFrameOptionsMiddleware',
      ]
      
    • 添加数据库:
      DATABASES = {
             
          'default': {
             
              'ENGINE': 'django.db.backends.mysql',
              'NAME': 'note',
              'USER': 'root',
              'PASSWORD': 'mysql',
              'HOST': '127.0.0.1',
              'port':3306,
          }
      }
      
    • 更改语言及时区
      LANGUAGE_CODE = 'zh-hans'
      TIME_ZONE = 'Asia/Shanghai'
      USE_I18N = True
      USE_L10N = True
      USE_TZ = True
      

2.2 用户模型类设计

  • 模型类字段
    • username: max_length=30,具备唯一性约束
    • password: max_length=32
    • create_time: 记录用户创建时间
    • update_time: 记录用户更新时间
      from django.db import models
      class User(models.Model):
          username = models.CharField('用户姓名',max_length=30,unique=True)
          password = models.CharField('用户密码',max_length=32)
          create_time = models.DateTimeField('创建时间',auto_now_add=True)
          update_time = models.DateTimeField('更新时间',auto_now=True)
      
          def __str__(self):
              return 'username:%s'%(self.username)
      

2.3 用户注册

  • URL:/user/reg -> 在主路由中配置子应用路由user/
    #项目文件同名文件夹下/urls.py
    from django.contrib import admin
    from django.urls import path,include
    import user
    urlpatterns = [
        path('admin/', admin.site.urls),
        path('user/', include('user.urls')),
    ]
    
    #子应用目录下新建urls.py
    from django.urls import path
    from user import views
    urlpatterns = [
        path('reg', views.reg_view),
    ]
    
  • 视图函数:reg_view
    from django.http import HttpResponse
    from django.shortcuts import render
    from user.models import User
    # Create your views here.
    def reg_view(request):
        #注册 GET返回页面
        if request.method == 'GET':
            return render(request,'user/register.html')
        #POST处理页面提交的数据
        elif request.method == 'POST':
            password1 = request.POST.get('password1','')
            password2 = request.POST.get('password2','')
            username = request.POST.get('username','')
        # 1.两个密码要保持一致
            if password2 != password1:
                return HttpResponse('两次输入密码不一致')
        # 2.当前用户名是否可用
            old_user = User.objects.filter(username=username)
            if old_user:
                return HttpResponse('用户名已存在')
        # 3. 插入数据【明文处理】
            User.objects.create(username=username,password=password1)
            return HttpResponse('注册成功')
    
  • 模板位置:templates/user/register.html
    <!--templates/user/register.html--> 
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>账号注册</title>
    </head>
    <body>
    <form action="reg" method="post">
        <p>用户名 <input name="username" type="text"></p>
        <p>密码 <input name="password1" type="text"></p>
        <p>确认密码 <input name="password2" type="text"></p>
        <p><input type="submit" value="注册"></p>
    </form>
    </body>
    
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值