简单的Django项目创建流程(你值得拥有)

**

简单的Django项目创建流程(你值得拥有 )

**

一,项目创建(码云)

目的: 可以在gitee上面创建项目, clone到本地管理(项目名称)项目

  • 操作流程:
    • 1, 登录到码云创建仓库
    • 2, clone仓库到本地
    • 3, 进入到仓库, 创建项目
    • 4, 上传项目到远程仓库
  • 注意点:
    • .gitignore作用: 忽略不需要使用git管理的文件
  • 注意点2:
    • 1, 配置仓库的目录, 在pycharm中在这里插入图片描述
      2, 使用VCS进行提交测试## 功能快捷键
      在这里插入图片描述

二、开发环境配置

  • 目的: 可以配置项目的两套运行环境

  • 操作流程:

    • 1,创建settings包, 创建dev.py, 创建prod.py文件

    • 2, 修改启动加载的配置文件(manage.py)

      •  os.environ.setdefault("DJANGO_SETTINGS_MODULE", "meiduo_mall.settings.dev")
        
  • 注意点:(先运行,再配置)
    在这里插入图片描述

三、jinja2模板引擎

  • 目的: 能够配置jinja2的模板语法

  • 操作流程:

    • 1, 创建templates文件夹

    • 2, 配置相关的模板语法(meiduo_mall/settings/dev.py)

      • TEMPLATES = [
            {
                'BACKEND': 'django.template.backends.jinja2.Jinja2', # 加载jinja2引擎
                'DIRS': [os.path.join(BASE_DIR,'templates')], #模板存储位置
        				...
          	    'OPTIONS': {
                    'environment':'meiduo_mall.utils.my_jinja2.environment', #设置全局的环境变量方法
                     ...
                    ],
                },
            },
        ]
        
    • 3, 配置全局方法(meiduo_mall/utils/my_jinja2.py)

      • from __future__ import absolute_import  # Python 2 only
        
        from django.contrib.staticfiles.storage import staticfiles_storage
        from django.urls import reverse
        
        from jinja2 import Environment
        
        
        def environment(**options):
            env = Environment(**options)
            env.globals.update({
                'static': staticfiles_storage.url, # static方法
                'url': reverse, #url方法
            })
            return env
        

四,mysql配置

  • 目的: 可以参考官方文档, 配置数据库

  • 操作流程:

    • 1, 配置数据库连接信息(meiduo_mall/settings/dev.py)

      • DATABASES = {
            'default': {
                'ENGINE': 'django.db.backends.mysql',
                'NAME': 'meiduo17',
                'USER': 'root',
                'PASSWORD': '123456',
                'HOST': '127.0.0.1',
                'PORT': '3306',
            }
        }
        
    • 2, 创建数据库(在终端创建即可)

    • 3, 配置pymysql作为驱动(meiduo_mall/init.py)

      • # 配置pymysql作为mysql的驱动
        import pymysql
        pymysql.install_as_MySQLdb()
        

五、配置redis数据库

  • 目的: 参考文档, 配置redis, 用于以后的缓存信息

  • 操作流程:

    • 1, 配置redis存储信息(meiduo_mall/settings/dev.py)

    • # redis配置
      CACHES = {
          "default": {
              "BACKEND": "django_redis.cache.RedisCache",
              "LOCATION": "redis://127.0.0.1:6379/1",
              "OPTIONS": {
                  "CLIENT_CLASS": "django_redis.client.DefaultClient",
              }
          },
          "session": {
              "BACKEND": "django_redis.cache.RedisCache",
              "LOCATION": "redis://127.0.0.1:6379/0",
              "OPTIONS": {
                  "CLIENT_CLASS": "django_redis.client.DefaultClient",
              }
          }
      }
      # session状态保持信息存储位置
      SESSION_ENGINE = "django.contrib.sessions.backends.cache"
      SESSION_CACHE_ALIAS = "session"
      

六、日志工程的配置

  • 目的: 可以配置日志信息, 记录用户的访问行为, 或者程序运行的行为

  • 操作流程:

    • 1, 日志配置(dev.py)

      • # 日志
        LOGGING = {
            'version': 1,
            'disable_existing_loggers': False,  # 是否禁用已经存在的日志器
            'formatters': {  # 日志信息显示的格式
                'verbose': {
                    'format': '%(levelname)s %(asctime)s %(module)s %(lineno)d %(message)s'
                },
                'simple': {
                    'format': '%(levelname)s %(module)s %(lineno)d %(message)s'
                },
            },
            'filters': {  # 对日志进行过滤
                'require_debug_true': {  # django在debug模式下才输出日志
                    '()': 'django.utils.log.RequireDebugTrue',
                },
            },
            'handlers': {  # 日志处理方法
                'console': {  # 向终端中输出日志
                    'level': 'INFO',
                    'filters': ['require_debug_true'],
                    'class': 'logging.StreamHandler',
                    'formatter': 'simple'
                },
                'file': {  # 向文件中输出日志
                    'level': 'INFO',
                    'class': 'logging.handlers.RotatingFileHandler',
                    'filename': os.path.join(os.path.dirname(BASE_DIR), 'logs/meiduo.log'),  # 日志文件的位置
                    'maxBytes': 300 * 1024 * 1024,
                    'backupCount': 10,
                    'formatter': 'verbose'
                },
            },
            'loggers': {  # 日志器
                'django': {  # 定义了一个名为django的日志器
                    'handlers': ['console', 'file'],  # 可以同时向终端与文件中输出日志
                    'propagate': True,  # 是否继续传递日志信息
                    'level': 'INFO',  # 日志器接收的最低日志级别
                },
            }
        }
        
    • 2,

七、静态文件集成

  • 目的: 可以将项目中用到的静态文件集成到工程中

  • 操作流程:

    • 1, 配置静态文件存储位置(dev.py)

      • # 配置静态文件资源存储位置的(绝对路径)
        STATICFILES_DIRS = [
             os.path.join(BASE_DIR,'static')
        ]
        

八、创建用户模块子应用

  • 目的: 可以在apps中创建子应用

  • 操作流程:

    • 1, 在meiduo_mall根应用中创建apps包

    • 2, 进入到apps中, 创建users子应用

      • python ../../manage.py startapp users
        

九、设置导包路径

  • 目的: 可以将apps设置为导包路径

  • 操作流程:

    • 1, 导包路径配置(dev.py)

      • # 告诉pycharm apps作为导包路径, 当使用apps中的子应用的时候, 可以不需要写前缀,直接使用子应用名称即可
        import sys
        sys.path.insert(0,os.path.join(BASE_DIR,'apps'))
        # print(sys.path) #导包路径
        
        INSTALLED_APPS = [
            ...
            # 'users', # 展开时候就是下面的形式
            'users.apps.UsersConfig'
        
        ]
        

十、展示用户注册页面

  • 目的: 可以编写类视图,展示注册页面

  • 操作流程:

    • 1, 根路由(urls.py)

      • url(r'^', include('users.urls'))
        
    • 2, 子路由(users/urls.py)

      • from django.conf.urls import url
        from . import views
        urlpatterns = [
            url(r'^register/$',views.RegisterView.as_view())
        ]
        
    • 3, 类视图(users/views.py)

      • from django.shortcuts import render
        from django.views import View
        
        # 1, 注册页面视图
        class RegisterView(View):
            def get(self,request):
                return render(request,'register.html')
        
        
  • 注意点:

    • 需要将register.html移动到templates中

十一、用户模型类创建

  • 目的: 可以定义用户模型类, 设置相关的属性

  • 操作流程:

    • 1, 定义模型类(users/models.py)

      • from django.db import models
        from django.contrib.auth.models import AbstractUser
        
        # 1,定义用户模型类
        class User(AbstractUser):
        
            #1, 增加额外的属性
            mobile = models.CharField(verbose_name="手机号",max_length=11,unique=True)
        
            #2, 指定表名信息
            class Meta:
                db_table = "tb_users"
        
        
    • 2, 配置自定义模型类(dev.py)

      • # 设置自定义的认证模型类
        AUTH_USER_MODEL = 'users.User'
        
  • 注意点:

    • 集成系统AbstractUser的好处
      • 1, AbstractUser提供了通用的属性, 比如: username ,password ….
      • 2, AbstractUser提供了密码加密方法, 和校验方法

十二、用户模型类迁移

  • 目的: 可以迁移用户表数据, 并知道系统当中的相关表的产生
  • 操作流程:
  • 1, python manage.py makemigrations
  • 2 python manage.py migrate

十三(优惠大赠送)创建流程上帝视角

  • 文件位置图例(有助于更好的整理项目路径及功能模块)
    在这里插入图片描述
    -流程操作思维导图(能让整个创建流程有序进行【按部就班】)

在这里插入图片描述
快去测试下,你新创建的项目是否成功了呢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值