Django是一个相对容易学习的框架,并且已经发展了许多年,拥有相对活跃的开源环境。像豆瓣、Instagram,Spotify,YouTube等官方网站都是基于Django搭建的,今天我们来学着用它搭建一个商城网站。
Python实用宝典 曾经发表过Django的实战教程:
不过,这三篇文章是基于原生Django开发的。
今天我们来尝试使用他人搭建好的框架 Django-oscar,开发一个商城网站。
1.准备
开始之前,你要确保Python和pip已经成功安装在电脑上噢,如果没有,请访问这篇文章:超详细Python安装指南 进行安装。如果你用Python的目的是数据分析,可以直接安装Anaconda:Python数据分析与挖掘好帮手—Anaconda
Windows环境下打开Cmd(开始—运行—CMD),苹果系统环境下请打开Terminal(command+空格输入Terminal),准备开始第2步操作。
当然,我更推荐大家用VSCode编辑器,在编辑器下方的终端运行命令安装依赖模块,多舒服的一件事啊:Python 编程的最好搭档—VSCode 详细指南。
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 helper location = 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变量中添加:
django.contrib.sites
django.contrib.flatpages
widget_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 apps from django.contrib import admin from django.urls import include, path urlpatterns = [ path('admin/', admin.site.urls), path('', include(apps.get_app_config('oscar').urls[0])), ]
执行以下命令来运行项目:
python manage.py migrate python manage.py createsuperuser python manage.py runserver
然后访问网址:http://127.0.0.1:8000/dashboard/
会出现一个用户登录框,输入刚createsuperuser时创建的超管用户即可:
进去后,就是网站的后台了:
这个框架给定的功能其实蛮全的,但对于我们中文站来说,你还需要做翻译,因为实质上该框架的国际化并不是很完善。
此外还需要补充微信支付和支付宝支付,这两个需要有商家权限才能开通。你可以从微信的官方SDK中导入相应代码,并结合到框架中。
总而言之,这是一个很不错的Django商城项目,有兴趣的话可以拿它来开发一个简单的商城。更多功能请关注官方文档:
https://django-oscar.readthedocs.io/en/latest/internals/getting_started.html
我们的文章到此就结束啦,如果你喜欢我们今天的Python 教程,请持续关注我们,如果对你有帮助,麻烦在下面点一个赞/在看哦有任何问题都可以在下方留言区留言,我们都会耐心解答的!
Python实用宝典 (pythondict.com)
不只是一个宝典
欢迎关注公众号:Python实用宝典
评论(0)