草庐IT

学习笔记——美多商城——1 美多商城项目准备

isDaHua 2023-04-16 原文

2022-10-23

步骤:

一、创建工程仓库

(1)在“码云”上创建一个仓库,在本地盘符中创建一个文件夹,右击,使用git,将远程仓库的内容克隆到本地仓库中,点击“Git Bash Here”。将刚刚创建的远程仓库克隆,使用的命令是“git clone 刚刚远程仓库的地址(点击(克隆/下载)按钮会出现一个网址)”。之后,系统会弹出弹框,要求输入Gitee中的用户名(头像下面@之后的用户名,不是我们设置的姓名)和密码。

(2)使用pycharm打开刚刚克隆下来的仓库。在忽略文件(gitignore)中,随意找一行,添加上“.idea”,忽略掉该文件。

(3)之后,将修改的内容推送至远程仓库。使用快捷键“Ctrl + K”,选中要推送修改的部分,并填写提交描述,右击“提交并推送”。之后会弹出一个凭证,输入Gitee中的用户名与密码。之后推送完后。查看是否推送成功:在本地:点击pycharm下面“git”按钮,可以查看。在Gitee中,刷新页面就可。

二、创建美多商城工程

(1)创建一个虚拟环境,安装Django框架

创建虚拟环境

mkvirtualenv -p python3 meiduo_mall

安装Django框架

pip install django

(2)设置子应用

django-admin startproject meiduo_mall

 --------------------------------

2022-10-24

使用pycharm打开文件所在的位置,,首先在pycharm中的终端中运行该Django项目,查看是否OK(python manage.py runserver)

为了直接在“manage.py”文件中直接使用运行按钮直接执行,需要点击工具栏中的“manage”,修改配置,将第二空中的参数设置为“runserver 8000”,之后在“manage.py”中进行执行运行。

之后将项目提交至远程仓库。

-------------------------

三、配置开发环境

(1)在“meiduo_mall”中右击添加一个软件包,命名为“settings”,在后面弹出的询问框,问是否推送至远程仓库中,点击“是”。

(2)设置配置文件,在“settings”中,创建一个“.py”文件,命名为“dev.py”,将“setting.py”中的文件复制到“dev.py”文件中,并且将“setting.py”文件删除。

(3)在“manage.py”文件中,“

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "meiduo_mall.settings")

”行中改为

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "meiduo_mall.settings.dev")

,之后在进行运行。

(4)新建“生产环境的配置环境”,在“settings”中创建一个“.py”文件,命名为“prod.py”。在“wsgi.py”文件中修改生产环境的配置文件。为

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "meiduo_mall.settings.prod")

-------------------

四、配置jinja2模板引擎

(1)在“dev.py”文件中,找到“TEMPLATES”,将其中对应的代码改为

'BACKEND': 'django.template.backends.jinja2.Jinja2',

 (2)配置模板文件的加载路径

'DIRS': [os.path.join(BASE_DIR,'templates')],

(3)在“meiduo_mall”文件夹下面创建一个“python package”文件,命名为“utils”。在该文件夹下创建一个“.py”文件,命名为“jinja2_env”。“jinja2_env.py”文件中的代码:

from jinja2 import Environment
from django.contrib.staticfiles.storage import staticfiles_storage
from django.urls import reverse
def jinja2_environment(**options):
    """jinja2环境"""
    # 创建环境对象
    env = Environment(**options)
    # 自定义语法:static('静态文件相对路径'){{url('路由的命名空间')}}
    env.globals.update({
        'static':'staticfiles_storage.url', # 获取静态文件的前缀
        'url':reverse, #反向解析
    })
    # 返回环境对象
    return env

(4)在“settings”中的“dev.py”中的“TEMPLATES”中补充Jinja2模板引擎环境,如下:

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.jinja2.Jinja2', #配置Jinja2模板引擎
        'DIRS': [os.path.join(BASE_DIR,'templates')], # 配置模板文件的加载路径
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
            # 补充Jinja2模板引擎环境
            'environment':'meiduo_mall.utils.jinja2_env.jinja2_environment',
        },
    },
]

五、配置mysql数据库

(1)打开虚拟机中的ubantu,打开终端,依次输入下面的命令

mysql -uroot -p
show databases;
create database meiduo charset=utf8;
show databases;
# 为数据库创建一个用户
create user '用户名'@'%' identified by '密码';
grand all on meiduo.* to '用户名'@'%';
# 刷新权限
flush privileges;

(2)在“settings”中的“dev.py”中的“DATABASES”添加信息:

 1 DATABASES = {
 2     'default': {
 3         'ENGINE': 'django.db.backends.mysql', # 数据库引擎
 4         'HOST': 'xxx.xxx.xxx.xxx', # 数据库主机
 5         'PORT': 3306, # 数据库端口
 6         'USER': xxx, # 数据库用户名
 7         'PASSWORD':'xxx', # 数据库用户密码
 8         'NAME': 'meiduo', # 数据库名字
 9     }
10 }

  说明:在第4行中写出“数据库主机”的ip地址,将设置的用户名和密码填写到对用的位置上。

(3)安装pymysql

使用的命令“pip install PyMySQL”;之后需要在"meiduo_mall"文件夹中的“init.py”中填入下面的代码,因为刚刚将“数据库的引擎的后缀”修改为“mysql”。

from pymysql import install_as_MySQLdb

install_as_MySQLdb()

六、配置redis数据库

(1)安装django-redis扩展包,在pycharm中的终端中使用的命令是:

pip install django-redis

(2)配置redis数据库,查看的中文配置文档如下:

https://django-redis-chs.readthedocs.io/zh_CN/latest/

(3)在“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",
        }
    }
}

(4)配置分库

 1 # 配置Redis数据库
 2 CACHES = {
 3     "default": { # 默认
 4         "BACKEND": "django_redis.cache.RedisCache",
 5         "LOCATION": "redis://xxx.xxx.xxx.xxx:6379/0",
 6         "OPTIONS": {
 7             "CLIENT_CLASS": "django_redis.client.DefaultClient",
 8         }
 9     },
10     "session": { # session
11         "BACKEND": "django_redis.cache.RedisCache",
12         "LOCATION": "redis://xxx.xxx.xxx.xxx:6379/1",
13         "OPTIONS": {
14             "CLIENT_CLASS": "django_redis.client.DefaultClient",
15         }
16     },
17 }
18 SESSION_ENGINE = "django.contrib.sessions.backends.cache"
19 SESSION_CACHE_ALIAS = "session"

    说明:在第5行和第12行代码中,“xxx.xxx.xxx.xxx”:表示的是在“DATABASES”中配置的数据库主机的ip地址。

七、配置日志信息

(1)在“settings”中的“dev.py”中任意找一行,添加如下代码:

# 配置工程日志
LOGGING = {
    'version': 1,
    'disable_exisiting_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'
        },
    },
    'filter':{ # 对日志进行过滤
        'require_debug_true':{ # django在debug模式下才输出日志
            '()':'django.utils.log.RequireDebugTrue',
        },
    },
    'handlers':{ # 日志处理方法
        'console':{ # 向终端中输入日志
            'level':'INFO',
            'filter':['require_debug_true'],
            'class':'logging.StreamHandler',
            'formatter':'simple'
        },
        'file':{ # 向文件中输出日志
            'level':'INFO',
            'class':'logging.handlers.RotatingFileHander',
            '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',# 日志器接收的最低日志级别

        },
    }
}

 

有关学习笔记——美多商城——1 美多商城项目准备的更多相关文章

  1. ruby - 如何在 buildr 项目中使用 Ruby 代码? - 2

    如何在buildr项目中使用Ruby?我在很多不同的项目中使用过Ruby、JRuby、Java和Clojure。我目前正在使用我的标准Ruby开发一个模拟应用程序,我想尝试使用Clojure后端(我确实喜欢功能代码)以及JRubygui和测试套件。我还可以看到在未来的不同项目中使用Scala作为后端。我想我要为我的项目尝试一下buildr(http://buildr.apache.org/),但我注意到buildr似乎没有设置为在项目中使用JRuby代码本身!这看起来有点傻,因为该工具旨在统一通用的JVM语言并且是在ruby中构建的。除了将输出的jar包含在一个独特的、仅限ruby​​

  2. ruby-on-rails - 项目升级后 Pow 不会更改 ruby​​ 版本 - 2

    我在我的Rails项目中使用Pow和powifygem。现在我尝试升级我的ruby​​版本(从1.9.3到2.0.0,我使用RVM)当我切换ruby​​版本、安装所有gem依赖项时,我通过运行railss并访问localhost:3000确保该应用程序正常运行以前,我通过使用pow访问http://my_app.dev来浏览我的应用程序。升级后,由于错误Bundler::RubyVersionMismatch:YourRubyversionis1.9.3,butyourGemfilespecified2.0.0,此url不起作用我尝试过的:重新创建pow应用程序重启pow服务器更新战俘

  3. ruby-on-rails - 新 Rails 项目 : 'bundle install' can't install rails in gemfile - 2

    我已经像这样安装了一个新的Rails项目:$railsnewsite它执行并到达:bundleinstall但是当它似乎尝试安装依赖项时我得到了这个错误Gem::Ext::BuildError:ERROR:Failedtobuildgemnativeextension./System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/rubyextconf.rbcheckingforlibkern/OSAtomic.h...yescreatingMakefilemake"DESTDIR="cleanmake"DESTDIR="

  4. Ruby 从大范围中获取第 n 个项目 - 2

    假设我有这个范围:("aaaaa".."zzzzz")如何在不事先/每次生成整个项目的情况下从范围中获取第N个项目? 最佳答案 一种快速简便的方法:("aaaaa".."zzzzz").first(42).last#==>"aaabp"如果出于某种原因你不得不一遍又一遍地这样做,或者如果你需要避免为前N个元素构建中间数组,你可以这样写:moduleEnumerabledefskip(n)returnto_enum:skip,nunlessblock_given?each_with_indexdo|item,index|yieldit

  5. LC滤波器设计学习笔记(一)滤波电路入门 - 2

    目录前言滤波电路科普主要分类实际情况单位的概念常用评价参数函数型滤波器简单分析滤波电路构成低通滤波器RC低通滤波器RL低通滤波器高通滤波器RC高通滤波器RL高通滤波器部分摘自《LC滤波器设计与制作》,侵权删。前言最近需要学习放大电路和滤波电路,但是由于只在之前做音乐频谱分析仪的时候简单了解过一点点运放,所以也是相当从零开始学习了。滤波电路科普主要分类滤波器:主要是从不同频率的成分中提取出特定频率的信号。有源滤波器:由RC元件与运算放大器组成的滤波器。可滤除某一次或多次谐波,最普通易于采用的无源滤波器结构是将电感与电容串联,可对主要次谐波(3、5、7)构成低阻抗旁路。无源滤波器:无源滤波器,又称

  6. CAN协议的学习与理解 - 2

    最近在学习CAN,记录一下,也供大家参考交流。推荐几个我觉得很好的CAN学习,本文也是在看了他们的好文之后做的笔记首先是瑞萨的CAN入门,真的通透;秀!靠这篇我竟然2天理解了CAN协议!实战STM32F4CAN!原文链接:https://blog.csdn.net/XiaoXiaoPengBo/article/details/116206252CAN详解(小白教程)原文链接:https://blog.csdn.net/xwwwj/article/details/105372234一篇易懂的CAN通讯协议指南1一篇易懂的CAN通讯协议指南1-知乎(zhihu.com)视频推荐CAN总线个人知识总

  7. 深度学习部署:Windows安装pycocotools报错解决方法 - 2

    深度学习部署:Windows安装pycocotools报错解决方法1.pycocotools库的简介2.pycocotools安装的坑3.解决办法更多Ai资讯:公主号AiCharm本系列是作者在跑一些深度学习实例时,遇到的各种各样的问题及解决办法,希望能够帮助到大家。ERROR:Commanderroredoutwithexitstatus1:'D:\Anaconda3\python.exe'-u-c'importsys,setuptools,tokenize;sys.argv[0]='"'"'C:\\Users\\46653\\AppData\\Local\\Temp\\pip-instal

  8. ruby - 我正在学习编程并选择了 Ruby。我应该升级到 Ruby 1.9 吗? - 2

    我完全不是程序员,正在学习使用Ruby和Rails框架进行编程。我目前正在使用Ruby1.8.7和Rails3.0.3,但我想知道我是否应该升级到Ruby1.9,因为我真的没有任何升级的“遗留”成本。缺点是什么?我是否会遇到与普通gem的兼容性问题,或者甚至其他我不太了解甚至无法预料的问题? 最佳答案 你应该升级。不要坚持从1.8.7开始。如果您发现不支持1.9.2的gem,请避免使用它们(因为它们很可能不被维护)。如果您对gem是否兼容1.9.2有任何疑问,您可以在以下位置查看:http://www.railsplugins.or

  9. ruby - 如何在 Ruby 字符串中插入项目符号字符? - 2

    我正在尝试创建一个带有项目符号字符的Ruby1.9.3字符串。str="•"+"helloworld"但是,当我输入它时,我收到有关非ASCII字符的语法错误。我该怎么做? 最佳答案 你可以把Unicode字符放在那里。str="\u2022"+"helloworld" 关于ruby-如何在Ruby字符串中插入项目符号字符?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/1195

  10. ruby - 在 Rails 项目中测试本地版本的 gem - 2

    我的Rails站点使用了一个确实不是很好的gem。每次我需要做一些新的事情时,我最终不得不花费与向实际Rails项目添加代码一样多的时间来为gem添加功能。但我不介意,我将我的Gemfile设置为指向我的gem的GitHub分支(我尝试提交PR,但维护者似乎已经下台)。问题是我真的没有找到一种合理的方法来测试我添加到gem的新东西。在railsc中测试它会特别好,但我能想到的唯一方法是a)更改~/.rvm/gems/.../foo。rb,这看起来不对或者b)升级版本,推送到Github,然后运行​​bundleup,这除了耗时之外显然是一场灾难,因为我不确定我所做的promise是否正

随机推荐