Django制作母婴商场管理
Babie项目介绍
Babies项目是一个全新的母婴商场网站,采用的Django框架 MySQL HTML5+CSS4+js等技术
1.创建babie项目
1.打开Pycharm编辑器,点击flle——>New Probject
1.1结构图:
1.创建并注册应用-index,commodity,shopper
2.创建index,commodity,shopper
1.1 在setting中先导入os
在 控制台Terminal中输入python manage.py startapp index
一次只能创建一个应用
3.注册index,commodity,shopper
2.1在setting中的INSTALLED_APPS去添加刚刚创建的应用名
2.2添加中间件
在setting里的MIDDLEWARE里面添加
'django.middleware.locale.LocaleMiddleware',
4. 媒体资源的搭建
4.1创建模板 index、commodity、shopper、login
4.2创建并配置媒体文件夹 media、pstatic
3.2.1新建两个名为media和pstatic的文件夹
3.2.2配置文件夹
1.在setting里的STATIC_URL = '/static/'下面编写
#添加并设置配置属性STATICFILES_DIES
STATICFILES_DIES=(os.path.join(BASE_DIR,'pstatic'),)
STATIC_ROOT=os.path.join(BASE_DIR,'ALLStatic')
#媒体资源配置
MEDIA_URL='/media/'
MEDIA_ROOT =os.path.join(BASE_DIR,'media')
2.在主应用babie下urls里编写对文件夹的路径
#配置媒体资源路径
re_path('media/(?P<path>.*)',serve,{
'docunment_rot':settings.MEDIA_ROOT},name='media')
如图
1、babies文件夹
babies文件夹与项目名相同,该文件夹下含有文件init .py、asgi.py、settings.py、urls.py和 wsgi.py
2、commodity文件夹
commodity是Django创建的项目应用(App),文件夹里含有init.py、 admin.py、apps.py、models.py、tests.py和views.py文件,它主要实现网站的商品列表页和商品详细页。
3、index文件夹
index是Django创建的项目应用(App),文件夹含有的文件与项目应用(App)commodity相同,它主要实现网站首页。
4、media文件夹
media是网站的媒体资源,用于存放商品的主图和详细介绍图。
5、pstatic文件夹
pstatic是网站的静态资源,用于存放网站的静态资源文件,如css、JavaScript和网站界面图片。
6、shopper文件夹
shopper也是Django创建的项目应用(App),它主要实现网站的购物车页面、个人中心页面、用户登录注册页面、在线支付功能等。
7、templates文件夹
templates用于存放HTML模板文件,即网站的网页文件。
8、manage.py文件
manage.py是项目的命令行工具,内置多种方法与项目进行交互。在命令提示符窗口下,将路径切换到项目babys并输入python manage.py help,可以查看该工具的指令信息。
2. 创建数据库
1.下载Pymysql模块
1.1控制台中输入pip install pymysql
即可
2.配置MySQL
2.1在主应用中的__init__文件中输入import pymysql pymysql.install_as_MySQLdb()
2.2在setting文件中的DATEBASE中进行参数配置
3.运行测试
3.生成迁移文件
控制台输入manage.py makemigrations --empty index commodity shopper
4.迁移文件
控制台输入python manage.py migrate
5.查看数据库文件是否迁移成功
3. 定义数据模型
为Index、commodity、shopper定义相关的数据模型
1.定义index应用模型
from django.db import models
# Create your models here.
#人员信息类
class PersonInfo(models.Model):
id=models.AutoField(primary_key=True)
name=models.CharField(max_length=20)
age=models.IntegerField()
hireDate=models.DateField()
def __str__(self):
return self.name
class Meta:
verbose_name="人员信息"
#职业类
class Vocation(models.Model):
id = models.AutoField(primary_key=True)
job = models.CharField(max_length=20)
title = models.CharField(max_length=20)
payment=models.IntegerField(null=True,blank=True)
name=models.ForeignKey(PersonInfo,on_delete=models.CASCADE,related_name='ps')
def __str__(self):
return str(self.id)
class Meta:
verbose_name="职业信息"
#省份信息类
class Province(models.Model):
name = models.CharField(max_length=10)
def __str__(self):
return str(self.name)
#城市信息类
class City(models.Model):
name = models.CharField(max_length=5)
province = models.ForeignKey(Per