最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python美多商城項目開發(fā)小結(jié)

 更新時間:2022年02月16日 15:34:55   作者:皮阿瑪  
這篇文章主要介紹了python美多商城項目開發(fā)小結(jié),本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

項目總覽

創(chuàng)建虛擬環(huán)境

mkvirtualenv meiduo_malls

創(chuàng)建項目

django-admin startproject meiduo_malls

pip install django

運行項目

python manage.py runserver [127.0.0.1:9000]

1.項目開發(fā)模式

選項技術(shù)選型
開發(fā)模式前后端不分離
后端框架Django + Jinja2模板引擎
前端框架Vue.js

說明:

前后端不分離的開發(fā)模式,是為了提高搜索引擎排名,即SEO。特別是首頁,詳情頁和列表頁。
頁面需要整體刷新:我們會選擇使用Jinja2模板引擎來實現(xiàn)。
頁面需要局部刷新:我們會選擇使用Vue.js來實現(xiàn)。

2. 項目運行機制

3. 知識要點

1.項目開發(fā)模式

  • 前后端不分離,方便SEO。
  • 采用Django + Jinja2模板引擎 + Vue.js實現(xiàn)前后端邏輯。

2.項目運行機制

  • 代理服務(wù):Nginx服務(wù)器(反向代理)
  • 靜態(tài)服務(wù):Nginx服務(wù)器(靜態(tài)首頁、商品詳情頁、...)
  • 動態(tài)服務(wù):uwsgi服務(wù)器(美多商場業(yè)務(wù)場景)
  • 后端服務(wù):MySQL、Redis、Celery、RabbitMQ、Docker、FastDFS、Elasticsearch、Crontab
  • 外部接口:容聯(lián)云、QQ互聯(lián)、支付寶

配置開發(fā)環(huán)境

美多商城項目的環(huán)境分為開發(fā)環(huán)境生產(chǎn)環(huán)境。

開發(fā)環(huán)境:用于編寫和調(diào)試項目代碼。
生產(chǎn)環(huán)境:用于項目線上部署運行。

1. 新建配置文件

        開發(fā)環(huán)境 主應(yīng)用中新建setting包,dev.py,將原來的settings.py內(nèi)容復(fù)制進去

        然后修改manage.py的默認(rèn)開發(fā)環(huán)境改為dev

 生產(chǎn)環(huán)境

wsgi.py中修改默認(rèn)生產(chǎn)環(huán)境prod

"""
WSGI config for meiduo_malls project.
It exposes the WSGI callable as a module-level variable named ``application``.
For more information on this file, see
https://docs.djangoproject.com/en/4.0/howto/deployment/wsgi/
 
import os
from django.core.wsgi import get_wsgi_application
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'meiduo_malls.settings.prod')
application = get_wsgi_application()

2. 配置jinja2模板引擎

pip install 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模板引擎環(huán)境
            'environment': 'meiduo_malls.utils.jinja2_env.environment',
        },
    },
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [],
]

主應(yīng)用中添加utils包 ->jinja2_env.py

from django.templatetags.static import static
from django.urls import reverse
 
from jinja2 import Environment
def environment(**options):
    env = Environment(**options)
    env.globals.update({
        'static': static,
        'url': reverse,
    })
    return env
"""
確??梢允褂媚0逡嬷械膡{ url('') }} {{ static('') }}這類語句 
在配置模板處配置使用
此配置信息可在官網(wǎng)查找復(fù)制

最后一步配置pycharm,模板語言由django 改為jinja2

 ssh root@82.157.143.241 連接linux

 3.配置mysql

使用寶塔安裝數(shù)據(jù)庫

想要實現(xiàn)遠(yuǎn)程可以操控,騰訊云防火墻中添加規(guī)則3306,寶塔中防火墻也要添加放行端口3306

1.新建MySQL數(shù)據(jù)庫:meiduo_mall

$ create database meiduo charset=utf8;

2.新建MySQL用戶

$ create user itheima identified by '123456';

3.授權(quán)itcast用戶訪問meiduo_mall數(shù)據(jù)庫

$ grant all on meiduo.* to 'itheima'@'%';

4.授權(quán)結(jié)束后刷新特權(quán)

$ flush privileges;

配置數(shù)據(jù)庫dev.py

# django數(shù)據(jù)遷移支持的MySQL5.6以上 Django框架生成的SQL語句不兼容MySQL5.5
# 以下代碼兼容低版本MySQL
from django.db.backends.mysql.base import DatabaseWrapper
DatabaseWrapper.data_types['DateTimeField'] = 'datetime'
 
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql', # 數(shù)據(jù)庫引擎
        'HOST': '82.157.143.241', # 數(shù)據(jù)庫主機
        'PORT': 3306, # 數(shù)據(jù)庫端口
        'USER': 'itheima', # 數(shù)據(jù)庫用戶名
        'PASSWORD': '123456', # 數(shù)據(jù)庫用戶密碼
        'NAME': 'meiduo' # 數(shù)據(jù)庫名字
        # 采用數(shù)據(jù)庫嚴(yán)格模式
        'OPTIONS': {
            'charset': 'utf8mb4',
            'autocommit': True,
            'init_command': 'SET sql_mode="STRICT_TRANS_TABLES"',
        }
    }
}

安裝驅(qū)動

pip install PyMySQL

 工程的__init__.py中配置初始化

from pymysql import install_as_MySQLdb
install_as_MySQLdb()

4.配置redis

pip install django-redis

django-redis使用說明文檔

點擊進入文檔

配置可以遠(yuǎn)程訪問 /etc/redis.conf

#bind 127.0.0.1  ip注釋掉

daemonize yes    后臺運行

requirepass zndroid   設(shè)置密碼

protected-mode no   保護模式設(shè)為no

遠(yuǎn)程訪問的話記得寶塔和騰訊云都要放行6379端口

dos遠(yuǎn)程連接redis-cli -h 82.157.143.241 -a zndroid

CACHES = {
    "default": { # 默認(rèn)
        "BACKEND": "django_redis.cache.RedisCache",
        #"LOCATION": "redis://127.0.0.1:6379/0",
        "LOCATION": "redis://:zndroid@82.157.143.241:6379/0",
        "OPTIONS": {
            "CLIENT_CLASS": "django_redis.client.DefaultClient",
        }
    },
    "session": { # session
        "BACKEND": "django_redis.cache.RedisCache",
        "LOCATION": "redis://:zndroid@82.157.143.241:6379/1",
        "OPTIONS": {
            "CLIENT_CLASS": "django_redis.client.DefaultClient",
        }
    },
}
SESSION_ENGINE = "django.contrib.sessions.backends.cache"
SESSION_CACHE_ALIAS = "session"

default:

  • 默認(rèn)的Redis配置項,采用0號Redis庫。

session:

  • 狀態(tài)保持的Redis配置項,采用1號Redis庫。

SESSION_ENGINE

  • 修改session存儲機制使用Redis保存。

SESSION_CACHE_ALIAS:

  • 使用名為"session"的Redis配置項存儲session數(shù)據(jù)。

5.配置工程日志

配置文件dev.py中添加

# 配置工程日志
LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,  # 是否禁用已經(jīng)存在的日志器
    '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,  # 是否繼續(xù)傳遞日志信息
            'level': 'INFO',  # 日志器接收的最低日志級別
        },
    }
}

且需要在項目的根目錄中創(chuàng)建目錄logs 創(chuàng)建meiduo.log文件和  .gitkeep文件(git的時候保證空目錄也可以git過去)

此時git的時候logs文件夾是空目錄,默認(rèn)Git是不允許提交一個空的目錄到版本庫上的

此時使用.gitkeep允許提交空目錄

使用方式

import logging
 
# 創(chuàng)建日志記錄器
logger = logging.getLogger('django')
# 輸出日志
logger.debug('測試logging模塊debug')
logger.info('測試logging模塊info')
logger.error('測試logging模塊error')

 6.配置靜態(tài)資源dev.py

STATIC_URL = '/static/'
 
# 配置靜態(tài)文件加載路徑
STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')]

到此這篇關(guān)于python美多商城一的文章就介紹到這了,更多相關(guān)python美多商城內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論

浪卡子县| 阿合奇县| 偏关县| 大埔县| 高尔夫| 老河口市| 敦煌市| 措美县| 仪征市| 慈利县| 清镇市| 保亭| 清远市| 汉中市| 安义县| 海晏县| 兰西县| 泰州市| 陆良县| 东海县| 辉南县| 万全县| 互助| 大名县| 民丰县| 镇康县| 邛崃市| 确山县| 正蓝旗| 双柏县| 神农架林区| 西乌珠穆沁旗| 连云港市| 公主岭市| 黔东| 桂平市| 凤阳县| 曲松县| 金乡县| 襄城县| 长兴县|