博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python3开发--23--搭建Django商城项目架构
阅读量:2036 次
发布时间:2019-04-28

本文共 5285 字,大约阅读时间需要 17 分钟。

如果直接阅读本文,您可能有些不知所云,这是因为我用很多篇幅讲了一个事情,如果想知道上下文,那么建议您从本专栏第21章看起:

一、搭建项目开发环境

我们接着之前的Django项目继续,创建commodity和shopper应用:

# 本次新增的python3 manage.py startapp commoditypython3 manage.py startapp shopper

如下所示:

在这里插入图片描述

之后创建文件夹:media、pstatic、templates。因为这三个文件夹是我们自行创建的,因此还需要在这些文件夹中添加前端提供的HTML静态模板:

注:templates文件夹下当前只创建空的html文件即可!

在这里插入图片描述

二、项目的功能配置

1、修改shop/settings.py

# 导入会用到的库import os# 告诉Django有哪些应用INSTALLED_APPS = [	# 以下是Django内置的应用功能    'django.contrib.admin',    'django.contrib.auth',    'django.contrib.contenttypes',    'django.contrib.sessions',    'django.contrib.messages',    'django.contrib.staticfiles',        # 添加以下三个应用    'index',    'commodity',    'shopper',]# 中间件,是一个用来处理Django请求和响应的框架级别的钩子,是一个轻量、低级别的插件系统MIDDLEWARE = [    'django.middleware.security.SecurityMiddleware',    'django.contrib.sessions.middleware.SessionMiddleware',        # 添加中间件LocaleMiddleware    'django.middleware.locale.LocaleMiddleware',        'django.middleware.common.CommonMiddleware',    'django.middleware.csrf.CsrfViewMiddleware',    'django.contrib.auth.middleware.AuthenticationMiddleware',    'django.contrib.messages.middleware.MessageMiddleware',    'django.middleware.clickjacking.XFrameOptionsMiddleware',]# 修改数据库设置# 需事先使用pip安装mysqlclient和pymysqlDATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', 'NAME': 'shop', 'USER': 'root', 'PASSWORD': 'root123456', 'HOST': '127.0.0.1', 'PORT': '3306', }}# 配置静态资源和媒体资源,Django默认是static文件夹,而我们使用了自定义的# 默认的设置,无需修改STATIC_URL = '/static/'# 配置静态资源属性STATICFILES_DIRS = ( os.path.join(BASE_DIR, 'pstatic'),)# 配置媒体资源MEDIA_URL = '/media/'MEDIA_ROOT = os.path.join(BASE_DIR, 'media')

2、修改shop/urls.py

from django.conf import settingsfrom django.contrib import adminfrom django.urls import path, re_pathfrom django.views.static import serveurlpatterns = [    path('admin/', admin.site.urls),    # 配置媒体资源的路由信息    re_path('media/(?P
.*)', serve, {
'document_root':settings.MEDIA_ROOT}, name='media'),]

3、修改shop/__init__.py

import pymysql# 主要是为了解决两个报错问题!pymysql.version_info = (1, 4, 13, "final", 0)pymysql.install_as_MySQLdb()

4、添加静态或媒体资源

注1:media/detailsmedia/imgspstatic/img文件夹下都是图片,太多了因此没有展开

注2:前端知识不是我们的重点,因此不做详细讲解

在这里插入图片描述

三、项目测试

启动项目进行访问测试,可见我们已经成功的访问到了我们的图片!

测试地址:http://127.0.0.1:8000/media/imgs/p1.jpg

在这里插入图片描述

四、Django配置文件详解

Django配置文件:shop/settings.py

import osfrom pathlib import Path# 项目路径,该代码在创建时自动生成,一般无需修改BASE_DIR = Path(__file__).resolve().parent.parent# 密钥配置,随机值,主要用于重要数据的加密处理。该代码在创建时自动生成,一般无需修改SECRET_KEY = 'hot1%5#h5%7n1r&4#y0%!-)2ulv=nal!96&d=et1be$_4v04jw'# 调试模式,开发阶段应设置为True,上线后应设置为FalseDEBUG = True# 域名访问权限,设置可访问的域名,默认为空列表。DEBUG为False时必须设置值,不能为空# 如果允许所有域名均可访问,可设置为:# ALLOWED_HOSTS = ['*']ALLOWED_HOSTS = []# 告诉Django有哪些应用INSTALLED_APPS = [	# 以下是Django内置的应用功能    'django.contrib.admin',    'django.contrib.auth',    'django.contrib.contenttypes',    'django.contrib.sessions',    'django.contrib.messages',    'django.contrib.staticfiles',        # 我们自己的应用直接添加到最底下即可    'index',    'commodity',    'shopper',]# 中间件,是一个用来处理Django请求和响应的框架级别的钩子,是一个轻量、低级别的插件系统MIDDLEWARE = [    'django.middleware.security.SecurityMiddleware',    'django.contrib.sessions.middleware.SessionMiddleware',    # 添加中间件LocaleMiddleware    'django.middleware.locale.LocaleMiddleware',    'django.middleware.common.CommonMiddleware',    'django.middleware.csrf.CsrfViewMiddleware',    'django.contrib.auth.middleware.AuthenticationMiddleware',    'django.contrib.messages.middleware.MessageMiddleware',    'django.middleware.clickjacking.XFrameOptionsMiddleware',]# 路由设置接口,告诉Django从哪个文件查找整个项目的路由信息,一般不需要修改ROOT_URLCONF = 'shop.urls'# 配置模板,主要配置模板的解析引擎、模板的存放路径地址、Django内置功能的模板使用配置信息TEMPLATES = [    {
'BACKEND': 'django.template.backends.django.DjangoTemplates', '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如何查找WSGI文件,并从WSGI文件启动并运行Django系统服务,一般不需要修改WSGI_APPLICATION = 'shop.wsgi.application'# 配置数据库的连接信息,默认连接SQLite数据库# 如果使用MySQL数据库,需事先使用pip安装mysqlclient和pymysqlDATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', 'NAME': 'shop', 'USER': 'root', 'PASSWORD': 'root123456', 'HOST': '127.0.0.1', 'PORT': '3306', }}# 内置Auth认证的功能配置,主要实现Django的Auth认证系统的内置功能AUTH_PASSWORD_VALIDATORS = [ {
'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', }, {
'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', }, {
'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', }, {
'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', },]# 国际化与本地化配置LANGUAGE_CODE = 'en-us'TIME_ZONE = 'UTC'USE_I18N = TrueUSE_L10N = TrueUSE_TZ = True# 配置静态资源和媒体资源,Django默认是static文件夹,而我们使用了自定义的STATIC_URL = '/static/'STATICFILES_DIRS = ( os.path.join(BASE_DIR, 'pstatic'),)MEDIA_URL = '/media/'MEDIA_ROOT = os.path.join(BASE_DIR, 'media')

转载地址:http://iwraf.baihongyu.com/

你可能感兴趣的文章
加速页面显示 压缩html js css
查看>>
Spring MVC 学习笔记 data binding conversionService
查看>>
eclipse里查看一个接口的所有实现类
查看>>
导入导出Excel工具类ExcelUtil
查看>>
excel poi 设置列宽度
查看>>
jquery ajax缓存问题解决方法小结
查看>>
Spring并发访问的线程安全性问题
查看>>
java 获取HttpRequest Header 的几种方法
查看>>
SpringMVC在Controller层中注入request的坑
查看>>
Spring事务总结---事务概述及Spring事务的基本使用(完整)
查看>>
子类可以继承到父类上的注解吗--有结论了
查看>>
Spring事务总结---传播级别以及REQUIRED_NEW及NESTED的使用场景(赞)
查看>>
通过Spring @PostConstruct 和 @PreDestroy 方法 实现初始化和销毁bean之前进行的操作
查看>>
spring 默认事务传播属性
查看>>
shutdown和shutdownNow--多线程任务的关闭
查看>>
Thread.currentThread.interrupt()
查看>>
JVM实用参数(七)CMS收集器
查看>>
nginx 已有80端口服务如何在开启一个非80端口的静态资源指向
查看>>
nginx root静态资源地址默认路径
查看>>
redis多个线程操作单个key场景的并发问题
查看>>