博客
关于我
Django-oscar 快速搭建商城网站
阅读量:368 次
发布时间:2019-03-05

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

Django是一个相对容易学习的框架,并且已经发展了许多年,拥有相对活跃的开源环境。像豆瓣、Instagram,Spotify,YouTube等官方网站都是基于Django搭建的。

Python实用宝典 曾经发表过Django的实战教程:

不过,这三篇文章是基于原生Django开发的。

今天我们来尝试使用他人搭建好的框架 Django-oscar,开发一个商城网站。

1.准备

开始之前,你要确保Python和pip已经成功安装在电脑上噢,如果没有,请访问这篇文章: 进行安装。如果你用Python的目的是数据分析,可以直接安装Anaconda:

Windows环境下打开Cmd(开始—运行—CMD),苹果系统环境下请打开Terminal(command+空格输入Terminal),准备开始第二步操作。

当然,我更推荐大家用VSCode编辑器,把本文代码Copy下来,在编辑器下方的终端运行命令安装依赖模块,多舒服的一件事啊:。

2.构建虚拟环境

为了防止不同环境下的Python包互相影响,在开始之前你应该先构建虚拟环境

使用conda:

conda create -n mywebsite python=3.6

或使用virtualenv:

virtualenv --no-site-packages mywebsite 

如果是使用conda创建的虚拟环境,这样进入虚拟环境中:

Windows:

activate mywebsite 

Mac/Linux:

source activate mywebsite

使用virtualenv的话,一般虚拟环境会被安装到命令当前的目录下,使用以下方式进入虚拟环境

Windows:

source mywebsite/scripts/activate

Mac/Linux:

source mywebsite/bin/activate 

最后,在终端输入以下命令安装我们所需要的依赖模块:

pip install django-oscar

看到 Successfully installed xxx 则说明安装成功,注意这里并不需要先安装Django, 因为Django-oscar中附有依赖的Django版本。

3.安装项目

成功安装依赖后,运行以下命令安装Django项目,我起名为easyshop:

django-admin startproject easyshop

然后进入项目中:

cd easyshop

编辑easyshop.easyshop.settings.py文件,将以下代码复制到settings.py的顶部

from oscar.defaults import *from oscar import INSTALLED_APPS as OSCAR_APPS# Path helperlocation = lambda x: os.path.join(os.path.dirname(os.path.realpath(__file__)), x)

然后修改TEMPLATES变量以添加模板配置:

TEMPLATES = [    {        'BACKEND':'django.template.backends.django.DjangoTemplates',        'DIRS': [            os.path.join(BASE_DIR, 'templates'),            OSCAR_MAIN_TEMPLATE_DIR        ],        'APP_DIRS': True,        'OPTIONS': {            'context_processors': [                'django.template.context_processors.debug',                'django.template.context_processors.request',                'django.contrib.auth.context_processors.auth',                'django.template.context_processors.i18n',                'django.contrib.messages.context_processors.messages',                'oscar.apps.search.context_processors.search_form',                'oscar.apps.checkout.context_processors.checkout',                'oscar.apps.customer.notifications.context_processors.notifications',                'oscar.core.context_processors.metadata',            ],        },    },]

然后在 INSTALLED_APPS 变量中添加以下app:

django.contrib.sitesdjango.contrib.flatpageswidget_tweaks

并增加一个SITE_ID变量以便oscar框架识别:

# 此处可能会有重复,因此转化一遍INSTALLED_APPS = list(set([    'django.contrib.admin',    'django.contrib.auth',    'django.contrib.contenttypes',    'django.contrib.sessions',    'django.contrib.messages',    'django.contrib.staticfiles',    'django.contrib.sites',    'django.contrib.flatpages',    'widget_tweaks',] + OSCAR_APPS))SITE_ID = 1

再添加两个中间件到中间件MIDDLEWARE变量:

'oscar.apps.basket.middleware.BasketMiddleware','django.contrib.flatpages.middleware.FlatpageFallbackMiddleware',

最后添加身份验证和搜索引擎:

AUTHENTICATION_BACKENDS = (    'oscar.apps.customer.auth_backends.EmailBackend',    'django.contrib.auth.backends.ModelBackend',)HAYSTACK_CONNECTIONS = {    'default': {        'ENGINE': 'haystack.backends.simple_backend.SimpleEngine',    },}

4.项目运行

为了能正常访问oscar框架提供的后台,还需要配置一下 easyshop.easyshop.urls.py 文件:

from django.apps import appsfrom django.contrib import adminfrom django.urls import include, pathurlpatterns =[    path('admin/', admin.site.urls),    path('', include(apps.get_app_config('oscar').urls[0])),]

执行以下命令来运行项目:

python manage.py migratepython manage.py createsuperuserpython manage.py runserver

然后访问网址:http://127.0.0.1:8000/dashboard/

会出现一个用户登录框,输入刚createsuperuser时创建的超管用户即可:

进去后,就是网站的后台了:

这个框架给定的功能其实蛮全的,但对于我们中文站来说,你还需要做翻译,因为实质上该框架的国际化并不是很完善。

此外还需要补充微信支付和支付宝支付,这两个需要有商家权限才能开通。你可以从微信的官方SDK中导入相应代码,并结合到框架中。

总而言之,这是一个很不错的Django商城项目,有兴趣的话可以拿它来开发一个简单的商城。更多功能请关注官方文档:

https://django-oscar.readthedocs.io

如果你喜欢今天的Python 教程,请持续关注Python实用宝典,如果对你有帮助,麻烦在下面点一个赞/在看,有任何问题都可以在下方留言,我们会耐心解答的!

点击下方阅读原文可以获取所有代码和链接哦!

Python实用宝典 (pythondict.com)

不只是一个宝典

欢迎关注公众号:Python实用宝典

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

你可能感兴趣的文章
NHibernate学习[1]
查看>>
NHibernate异常:No persister for的解决办法
查看>>
NIFI1.21.0_Mysql到Mysql增量CDC同步中_日期类型_以及null数据同步处理补充---大数据之Nifi工作笔记0057
查看>>
NIFI1.21.0_Mysql到Mysql增量CDC同步中_补充_更新时如果目标表中不存在记录就改为插入数据_Postgresql_Hbase也适用---大数据之Nifi工作笔记0059
查看>>
NIFI1.21.0_NIFI和hadoop蹦了_200G集群磁盘又满了_Jps看不到进程了_Unable to write in /tmp. Aborting----大数据之Nifi工作笔记0052
查看>>
NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表多表增量同步_增删改数据分发及删除数据实时同步_通过分页解决变更记录过大问题_02----大数据之Nifi工作笔记0054
查看>>
NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表或全表增量同步_实现指定整库同步_或指定数据表同步配置_04---大数据之Nifi工作笔记0056
查看>>
NIFI1.23.2_最新版_性能优化通用_技巧积累_使用NIFI表达式过滤表_随时更新---大数据之Nifi工作笔记0063
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_根据binlog实现数据实时delete同步_实际操作04---大数据之Nifi工作笔记0043
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置binlog_使用处理器抓取binlog数据_实际操作01---大数据之Nifi工作笔记0040
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置数据路由_实现数据插入数据到目标数据库_实际操作03---大数据之Nifi工作笔记0042
查看>>
NIFI从MySql中离线读取数据再导入到MySql中_03_来吧用NIFI实现_数据分页获取功能---大数据之Nifi工作笔记0038
查看>>
NIFI从MySql中离线读取数据再导入到MySql中_无分页功能_02_转换数据_分割数据_提取JSON数据_替换拼接SQL_添加分页---大数据之Nifi工作笔记0037
查看>>
NIFI从PostGresql中离线读取数据再导入到MySql中_带有数据分页获取功能_不带分页不能用_NIFI资料太少了---大数据之Nifi工作笔记0039
查看>>
nifi使用过程-常见问题-以及入门总结---大数据之Nifi工作笔记0012
查看>>
NIFI分页获取Mysql数据_导入到Hbase中_并可通过phoenix客户端查询_含金量很高的一篇_搞了好久_实际操作05---大数据之Nifi工作笔记0045
查看>>
NIFI同步MySql数据_到SqlServer_错误_驱动程序无法通过使用安全套接字层(SSL)加密与SQL Server_Navicat连接SqlServer---大数据之Nifi工作笔记0047
查看>>
Nifi同步过程中报错create_time字段找不到_实际目标表和源表中没有这个字段---大数据之Nifi工作笔记0066
查看>>
NIFI大数据进阶_FlowFile拓扑_对FlowFile内容和属性的修改删除添加_介绍和描述_以及实际操作---大数据之Nifi工作笔记0023
查看>>
NIFI大数据进阶_Json内容转换为Hive支持的文本格式_操作方法说明_01_EvaluteJsonPath处理器---大数据之Nifi工作笔记0031
查看>>