当前位置: 首页 > wzjs >正文

可以做任务看漫画的漫画网站免费外国网站浏览器

可以做任务看漫画的漫画网站,免费外国网站浏览器,写论文做调查表的网站,中国广告网站本次内容主要为给整个电商项目配置好开发环境,包括如下环节: 创建电商项目xiaoyu_mall,Django版本默认是最新的大版本5.2配置应用目录,因项目会涉及到多个应用,为保证项目结构清晰,将在项目下建立apps目录…

本次内容主要为给整个电商项目配置好开发环境,包括如下环节:

  1. 创建电商项目xiaoyu_mall,Django版本默认是最新的大版本5.2
  2. 配置应用目录,因项目会涉及到多个应用,为保证项目结构清晰,将在项目下建立apps目录存放所有应用,统一管理
  3. 配置开发环境与生产环境,分别用于项目的开发和生产部署使用
  4. 配置使用Jinja2模板引擎,这是一个性能比Django更优秀的模板引擎
  5. 配置MySQL数据库,开发时可以使用SQlite, 生产时还是要使用MySQL或PostgreSQL,这两个数据库不是内置数据库,故此处需介绍其配置方法
  6. 配置Redis,提供数据库缓存
  7. 配置项目日志,用于记录程序运行状态、错误信息等
  8. 配置前端静态文件,包括HTML、CSS、JavaScript和图片等

10.1 创建电商项目

使用Pycharm工具创建xiaoyu_mall,注意要勾选admin选项。

10.2 配置应用目录

为确保项目结构清晰,在xiaoyu_mall包下创建apps包,存放所有的应用。

操作方法:创建users应用,在虚拟环境下将路径切换到apps下,然后执行命令python ..\..\manage.py startapp users

注意:此时再使用PyCharm -> Tools -> Run manage.py Task创建的应用只能与manage.py位于同级目录,不能满足开发要求。

INSTALLED_APPS = ['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','users',#'xiaoyu_mall.apps.users',
]

按以上方法,依次创建如下7个应用:验证模块verifications、首页广告contents、商品模块goods、地区模块areas、购物车模块carts、订单模块orders、支付模块payment。

10.3 配置开发环境与生产环境

开发环境用于日常开发,生产环境用于线上部署,为避免单个环境下相互干扰,考虑将二者分开,须完成两步操作。

  1. 准备开发与生产环境的配置文件:在xiaoyu_mall包下创建settings包,在其中创建dev.pyprod.py两个文件,并将settings.py的内容复制到dev.pyprod.py中,如下图所示。

  2. 指定项目当前要使用的配置文件:在manage.py中修改配置文件加载路径,修改后的代码如下:

    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'xiaoyu_mall.settings.dev')
    

在这里插入图片描述
此时通过命令行在虚拟环境下运行python .\manage.py runserver将会报如下异常,通过Pycharm运行也是如此

CommandError: You must set settings.ALLOWED_HOSTS if DEBUG is False.

问题在于找不到原来的settings.py,需要在配置文件dev.py中将apps目录的路径添加到项目搜索路径的开头

import os,sys# sys.path为项目解释器导入模块时的搜索路径,需要将apps的路径添加到sys.path列表的开头
sys.path.insert(0, os.path.join(BASE_DIR, 'apps'))

如果在Pycharm中运行项目,还需要重新配置运行的环境在这里插入图片描述
在这里插入图片描述

10.4 安装Jinja2模板引擎

第一步:在本项目虚拟环境下,通过pip install jinja2安装Jinja2,注意不是Jinja

第二步:配置Jinja2模板引擎,打开dev.pyprod.py

TEMPLATES = [# Jinja模板引擎配置{'BACKEND': 'django.template.backends.jinja2.Jinja2','DIRS': [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',]}},# Django模板引擎配置{'BACKEND': 'django.template.backends.django.DjangoTemplates','DIRS': [],'APP_DIRS': True,'OPTIONS': {'context_processors': ['django.template.context_processors.request','django.contrib.auth.context_processors.auth','django.contrib.messages.context_processors.messages',],},}
]

**注意:**在 Django 项目中,使用 Jinja2 作为模板引擎时,不需要删除默认的 Django 模板引擎。Django 允许同时配置多个模板引擎,在 TEMPLATES 列表中,将 Jinja2 引擎添加为第一项(优先级最高),同时保留默认的 Django 模板引擎。

当然,也可以使用模板目录隔离的方式

  • 推荐将不同引擎的模板分开存放(如 templates/jinja2templates/django),避免命名冲突。
  • 通过 DIRS 指定各自引擎的模板根目录。

第三步:在jinja2中引用静态文件和在页面中对url反向解析相对复杂,这里通过自定义的方式将引用静态文件和反向解析两个操作与Django引擎下的操作保持一致。

在xiaoyu_mall/xiaoyu_mall/包下创建用于存放全局文件的包utils,并在其中创建jinja2_env.py

from django.contrib.staticfiles.storage import staticfiles_storage
from django.urls import reverse
from jinja2 import Environmentdef jinja2_environment(**options):# 创建环境对象env = Environment(**options)# 添加 Django 的 static 和 url 函数env.globals.update({'static': staticfiles_storage,  # 静态文件引用'url': reverse,  # URL 反向解析})return env

第四步:在开发与生产环境的配置文件TEMPLATES选项的Jinja2配置信息中添加自定义的jinja2_environment模板引擎环境。

TEMPLATES = [{'BACKEND': 'django.template.backends.jinja2.Jinja2','DIRS': [BASE_DIR / 'templates'],'APP_DIRS': True,'OPTIONS': {'context_processors': ['django.template.context_processors.request','django.contrib.auth.context_processors.auth','django.contrib.messages.context_processors.messages',],# 配置自定义的jinja2模板引擎'environment': 'xiaoyu_mall.utils.jinja2_env.jinja2_environment',},},{'BACKEND': 'django.template.backends.django.DjangoTemplates','DIRS': [BASE_DIR / 'templates'],'APP_DIRS': True,'OPTIONS': {'context_processors': ['django.template.context_processors.request','django.contrib.auth.context_processors.auth','django.contrib.messages.context_processors.messages',],},},
]

10.5 配置MySQL数据库

第一步:在MySQL中创建数据库xiaoyu_mall

CREATE DATABASE `xiaoyu_mall` CHARACTER SET 'utf8mb4';

第二步:在配置文件dev.py中

DATABASES = {'default': {# 'ENGINE': 'django.db.backends.sqlite3',# 'NAME': BASE_DIR / 'db.sqlite3','ENGINE': 'django.db.backends.mysql','HOST': '127.0.0.1','PORT': '3306','USER': 'root','PASSWORD': '123456','NAME': 'xiaoyu_mall',}
}

第三步:安装mysqlclient库,pip install mysqlclient

10.6 配置redis

第一步:下载Redis-7.4.3-Windows-x64-msys2,放置目录D:\Redis-7.4.3-Windows-x64-msys2

第二步:在虚拟环境中安装django-redis,pip install django-redis

第三步:配置redis数据库,在dev.py与prod.py中

CACHES = {# 默认缓存,在代码中没有明确指定使用哪个缓存配置项时,Django会使用默认缓存'default': {# 指定redis作为缓存的后端存储'BACKEND': 'django_redis.cache.RedisCache',# 指定连接地址127.0.0.1,默认商品6379,使用0号库保存'LOCATION': 'redis://127.0.0.1:6379/0','OPTIONS': {# 指定在django-redis中使用redis的客户端类'CLIENT_CLASS': 'django_redis.client.DefaultClient',}},# 会话缓存,表示用缓存来存储和管理用户会话数据'session': {'BACKEND': 'django_redis.cache.RedisCache','LOCATION': 'redis://127.0.0.1:6379/1','OPTIONS': {'CLIENT_CLASS': 'django_redis.client.DefaultClient',}}
}
# Django框架中会话引擎的配置项,用于指定会话管理模块的类型
SESSION_ENGINE = 'django.contrib.sessions.backends.cache'
# Django框架中会话缓存别名的配置项,用于指定使用哪个缓存配置项来存储会话数据
SESSION_CACHE_ALIAS = 'session'

10.7 配置项目日志

  • 项目日志是程序运行状态、错误信息及其它相关信息的记录。
  • 这些记录会被写入特定的文件中,以便在项目出现问题时进行排查和分析。
  • 本项目中使用logging模块记录和管理日志。

第一步:在xiaoyu_mall包下创建logs目录,并在该目录下创建xiaoyu.log文件。

第二步:在配置文件dev.py和prod.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': {# 在debug模式下才输出日志'require_debug_true': {'()': 'django.utils.log.RequireDebugTrue', }},# 日志处理方法'handlers': {# 向终端输出日志'console': {'level': 'INFO',  # 日志级别为INFO# 使用require_debug_true过滤器'filters': ['require_debug_true'],# 日志处理类为logging.StreamHandler,将日志输出到终端'class': 'logging.StreamHandler','formatter': 'simple'  # 使用simple格式的日志显示形式},# 向文件中输出日志'file': {'level': 'INFO','class': 'logging.handlers.RotatingFileHandler','filename': BASE_DIR / 'logs' / 'xiaoyu.log','maxBytes': 1024 * 1024 * 300,  # 单个日志最大字节数'backupCount': 10,  # 保留的日志文件备份数量'formatter': 'verbose',  # 用verbose格式显示日志}},# 日志器'loggers': {# 定义一个名为django的日志器'django': {# 同时向终端和文件中输出日志'handlers': ['console', 'file'],'propagate': True,  # 是否继续传递日志信息'level': 'INFO',  # 日志器接收的最低日志级别}}
}

第三步:测试能否记录日志

先使用python .\manage.py shell打开shell,出现下面结果说明配置成功。

>>> import logging
>>> logger = logging.getLogger('django') 
>>> logger.debug('测试debug模块功能') 
>>> logger.info('测试info模块功能')      
INFO <console> 1 测试info模块功能
>>> logger.error('测试error模块功能') 
ERROR <console> 1 测试error模块功能

如果想使用Pycharm自带的python console,需要将自定义的开发环境设置到Django Console中,如下图。如果不配置,pycharm会使用默认的xiaoyu_mall.settings配置文件,此文件已被删除。
在这里插入图片描述

10.8 配置静态文件

静态文件分为两类,一个的用于存入模板文件的templates目录,一个是用于存放CSS、图片、Javascript等的static目录。

第一步:在xiaoyu_mall包下创建static目录,并将静态文件复制到其中。

第二步:在配置文件dev.py中配置指定相关路径。

# 静态文件(CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/5.2/howto/static-files/
STATIC_URL = 'static/'
# 指定额外的静态文件目录
STATICFILES_DIRS = [BASE_DIR / 'static']

第三步:测试,运行项目,浏览器输入http://127.0.0.1:8000/static/images/adv01.jpg,若可访问到静态图片,说明配置成功。

http://www.dtcms.com/wzjs/173506.html

相关文章:

  • 网站运营策划方案优化网站建设
  • 建筑工程公司注册需要什么条件佛山网站优化排名推广
  • 济南学生网站建设求职厉害的seo顾问
  • 网站服务器无响应是怎么回事搜索关键词是什么意思
  • 做数学题目在哪个网站好免费发布外链
  • 网站项目框架投放广告的渠道有哪些
  • 中建名城建设有限公司 网站百度站长平台如何添加网站
  • wordpress本地从服务器云浮seo
  • 太原做网站制作100种宣传方式
  • 百度大数据官网入口seo推广网站
  • 企业网站建设的一般要素主要包括网站的成都网站快速排名
  • 高端网站建设套餐深圳营销型网站开发
  • 在旅行社做网站运营品牌推广策划方案案例
  • 专门做网站制作的公司月饼营销软文
  • 北京做网站推广多少钱百度高级搜索指令
  • 信息网站怎么做微信朋友圈广告代理
  • app导航网站源码软文范例300字
  • 店面设计餐饮风格南宁排名seo公司
  • 国外做兼职网站网站推广去哪家比较好
  • 拖拽式网站建设哪家专业百度热搜关键词
  • 17网站一起做网店的流程电商网络推广
  • 网站优化18600119496日本产品和韩国产品哪个好
  • 南和网站建设公司太原网站建设近一周热点新闻
  • 自己做外贸网站能接到单吗产品推广方法
  • 友联建设集团官方网站关键词如何排名在首页
  • 安徽省外经建设集团有限公司网站上海关键词推广公司
  • 广东网站开发哪家做个公司网站多少钱
  • 懒人图库旺道seo怎么优化网站
  • 上海建设网站制百度风云榜电视剧排行榜
  • 做网站 赚广告费网络营销推广方法有哪些