我是靠谱客的博主 清新红牛,这篇文章主要介绍Django项目配置_美多商城Django项目_美多商城Build paths inside the project like this: os.path.join(BASE_DIR, …),现在分享给大家,希望可以做个参考。

Django项目_美多商城

这是20年9月20,0基础开始学习了两个月,完成的第一个项目.
在这里写作,敲出每一行代码,是对自己的学习做个记录.
系统基于Winds 里安装的虚拟机----Ubuntu

项目准备

Git

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
git中的三个区域: 工作区(.git所在的文件夹即是工作区) 暂存区(临时存储数据的区域) 本地仓库区(暂存内容会存储在本地仓库) git的主要三步操作:git add . 上传到暂存区 git commit -m 描述信息 上传到本地仓库 git push origin 分支名 推送到远端仓库 git status 查看文件状态,红色代表在工作区;绿色代表在暂存区 git clone 远端仓库地址 从远端克隆到本地 git checkout -b 分支名 git push origin 分支名 git branch 查看当前分支

Redis

复制代码
1
2
3
4
5
6
7
8
9
10
redis 是个高性能的,基于内存的亦可持久化的日志型,key -value 数据库,读取速度可以达到 10万以上每秒 特点: 1. 支持数据持久化 2.不仅支持key-value类型 还支持:string list set zeset hash 3.支持数据的备份 redis默认的数据库为16个, 0-15 默认端口为:6379

Django

复制代码
1
2
3
4
5
6
python 中的三大框架:flask tornado Django Django的特点: 重量级框架 内部使用MVT设计模式 设计模式的核心思想: 分工 解耦

项目工程搭建

  1. 准备代码仓库

    进入桌面: cd Desktop
    准备仓库: git clone 远端仓库地址
    创建自己的分支: git checkout -b 分支名
    将分支推送到远端:git push origin 分支名

  2. 创建美多商城

    创建虚拟环境: makvirtualenv 环境名 -p python3
    (-p : 指定创建的虚拟环境中使用的 python 解释器版本)
    在虚拟环境中安装Django: pip install django==2.2.5
    利用Django创建工程: Django-admin startproject 项目名
    pycharm打开项目

  3. 配置开发环境(必要的)

    准备配置文件: 在内层meiduo_mall下,新建个settings包,作为配置文件目录
    准备配置内容: 在settings下创建两个文件:dev.py 和 prod.py(开发调试和上线用的)
    其次将项目中自带的sttings.py内容拷贝到dev.py中,删除settings.py

    修改原本的配置文件路径: 在manage.py中第六行左右修改为:os.envir…(项目名.settings.dev)
    注: (新建的settings目录下的dev.py文件)
    运行空项目: 右上方manage选框editx选项,添加runserver后运行项目

  4. 配置模板文件夹

    添加templates(模板)文件夹: 这里老师用front_end-pc里的模板(工作中新建templates)
    注:(将业务逻辑的Python代码和页面设计的HTML代码分离)

    在dev.py(即原来的settings)中修改路径:找到TEMPLATES,
    ‘DIRS’: [os.path.join(BASE_DIR, ‘templates’)],

5.配置Mysql数据库

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
1.进入数据库 2.新建数据库: create database (meiduo_mall)库名 charset=utf8 新建用户,授权(可省略): create user itcast(用户名) identified by '123456'(密码); grant all on meiduo_mall.* to 'itcast'@'%'; 注:(本项目中已经操作了一次.其次是公司给你用户名,密码) 3.配置数据库: 在dev.py中找到DATABASES复制内容以下内容 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', # 数据库引擎 'HOST': '127.0.0.1', # 数据库主机 'PORT': 3306, # 数据库端口 'USER': 'itcast', # 数据库用户名 'PASSWORD': '123456', # 数据库用户密码 'NAME': 'meiduo_mall' # 数据库名字 }, } **运行项目出现错误的原因:** Django 中操作 MySQL 数据库需要驱动程序 MySQLdb 目前项目虚拟环境中没有驱动程序 MySQLdb 解决方法(即为什么安装PyMySQL扩展包): Python3.x 的版本中使用 PyMySQL 替代 MySQLdb 4.安装驱动程序: pip install PyMySQL 在内层meiduomall的__init__.py文件中,添加如下代码: # 导入函数: from pymysql import install_as_MySQLdb # 调用该函数: install_as_MySQLdb() 报错可能:错误一 query = query.decode 改为 encode 再运行 错误二 if version<(1,3,13) raise Improerly....把这两行注释掉,再运行
  1. 配置Redis数据库(安装redis客户端)

    安装django-redis扩展包: pip install django-redis
    配置redis数据库: 在dev.py中复制添加以下内容:
    CACHES = {
    “default”: { # 默认存储信息: 存到 0 号库
    “BACKEND”: “django_redis.cache.RedisCache”,
    “LOCATION”: “redis://127.0.0.1:6379/0”,
    “OPTIONS”: {
    “CLIENT_CLASS”: “django_redis.client.DefaultClient”,
    }
    },
    “session”: { # session 信息: 存到 1 号库
    “BACKEND”: “django_redis.cache.RedisCache”,
    “LOCATION”: “redis://127.0.0.1:6379/1”,
    “OPTIONS”: {
    “CLIENT_CLASS”: “django_redis.client.DefaultClient”,
    }
    },
    }
    SESSION_ENGINE = “django.contrib.sessions.backends.cache”
    SESSION_CACHE_ALIAS = “session”

    配置完成后运行程序,测试.
    我们之前讲过: redis 和 mysql 很像. 都有两个端: 客户端 & 服务端.
    我们想要把数据保存起来,必须走如下的流程:
    data ===> 利用客户端 ===> 保存服务端

  2. 配置日志

    在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(BASE_DIR, ‘logs/meiduo.log’), # 日志文件的位置
    ‘maxBytes’: 300 * 1024 * 1024,
    ‘backupCount’: 10,
    ‘formatter’: ‘verbose’
    },
    },
    ‘loggers’: { # 日志器
    ‘django’: { # 定义了一个名为django的日志器
    ‘handlers’: [‘console’, ‘file’], # 可以同时向终端与文件中输出日志
    ‘propagate’: True, # 是否继续传递日志信息
    ‘level’: ‘INFO’, # 日志器接收的最低日志级别
    },
    }
    }
    准备日志文件目录:在内层 meiduo_mall中创建logs文件夹,在该文件夹中添加 meiduo.log 文件. 作为日志的输出文件.

    日志有什么用?
    日志可以帮助我们快速定位错误, 快速拿取想要的信息: 例如前端发送了 GET 请求, 请求的地址是 /users/info/ 如果我们配置了日志信息, 则该请求过来以后, pycharm的控制台就会把这些信息打印出来, 使我们快速看到.

  3. 创建用户模块应用(创建子应用)

    1.添加包: 在内层meiduo_mall下添加一个包,名字叫apps,以后我们会在apps中管理所有子应用
    2.在apps包下创建子应用users: 首先进入到apps这个包中, cd…
    其次创建子应用: django-admin startapp users(子应用名)

    3.把apps增加到[导包路径]的列表中: 进入dev.py,最上面导入sys
    4.把apps的绝对路径添加到sys.path列表中:
    —第三.四步的代码—
    import os
    import sys

    Build paths inside the project like this: os.path.join(BASE_DIR, …)

    BASE_DIR =os.path.dirname(os.path.dirname(os.path.abspath(file)))
    apps_path = os.path.join(BASE_DIR, ‘apps’)
    sys.path.insert(0,apps_path)

    5.注册子应用: 进入dev.py 在找到 添加INSTALLED_APPS=[‘子应用名’,]

9.用户模型类

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
为什么要自定义用户模型类? 原因是: 我们的项目中需要保存,用户的手机号,但可惜的是 django 给我们提供的User类中, 没有这样的字段,可以让我们存储, 所以我们需要继承 django 工程的, 然后在里面 额外添加一个mobile字段 自定义用户模型类. 1.定义模型类: 在users.models.py中定义.必须继承自AbstractUser,在重写的类中, 添 加新的字段:mobile 代码如下: # 导入 from django.db import models from django.contrib.auth.models import AbstractUser # 我们重写用户模型类, 继承自 AbstractUser class User(AbstractUser): """自定义用户模型类""" # 额外增加 mobile 字段 mobile = models.CharField(max_length=11, unique=True) # 对当前表进行相关设置: class Meta: db_table = 'tb_users' # 在 str 魔法方法中, 返回用户名称 def __str__(self): return self.username 2.配置模型类才能使用: 在dev.py中添加代码:AUTH_USER_MODEL = 'users(子应用名).User(模型类名)' django 这个框架自带的一些东西, 需要大家记一下. 这里就有一个: django自带的有 User 模型类. 这个结论是没问题的, 但是这里有一个问题: 这个User模型类中是没有mobile这个字段的. 需要我们重写这个模型类, 然后在里面给他添加一个mobile字段才可以.
  1. 迁移模型类并设置域名

    ----在pycharm终端输入—
    生成迁移文件: python manage.py makemigrations
    进行数据迁移: python manage.py migrate

    ----在Ubuntu输入----
    修改hosts文件: sudo vim /etc/hosts
    在文件中增加一行代码: 127.0.0.1 www.meiduo.site

11.在子应用 users.views.py输入类视图,开始代码

最后

以上就是清新红牛最近收集整理的关于Django项目配置_美多商城Django项目_美多商城Build paths inside the project like this: os.path.join(BASE_DIR, …)的全部内容,更多相关Django项目配置_美多商城Django项目_美多商城Build内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(57)

评论列表共有 0 条评论

立即
投稿
返回
顶部