项目整体框架搭建:
1.django-admin startproject myfresh
2.将manage.py首行的python改为python3
settins文件中的初始配置:
3.在TEMPLATES中的DIRS中添加templates路径,在ALLOWD_HOSTS中添加*
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'templates')]
ALLOWED_HOSTS = ['*']
4.配置数据库相关信息
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'dailyfresh',
'USER': 'root',
'PASSWORD': '0000',
'HOST': '127.0.0.1',
'PORT':3306,
}
}
5.配置为中文
LANGUAGE_CODE = 'zh-Hans'
6.配置时区
TIME_ZONE = 'Asia/Shanghai'
7.添加静态文件相关配置
STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')]
创建APPS
./manage.py startapp user
./manage.py startapp goods
./manage.py startapp cart
./manage.py startapp order
考虑到版本更新的原因所以将所有app同意存放至python packge apps中:
但是这样做的话会让应用的注册,路由的包含变得麻烦所以在settings中添加
sys.path.insert(0, os.path.join(BASE_DIR, 'apps'))
将所有应用都移动到apps包下
然后在setttings中注册应用
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'user', # 用户模块
'goods', # 商品模块
'cart', # 购物车模块
'order', # 订单模块
]
在主url中配置路由包含:
为每个app路由起名反向解析是使用
url(r'^user/', include('user.urls', namespace='user')), # 用户模块
url(r'^cart/', include('cart.urls', namespace='cart')), # 购物车模块
url(r'^order/', include('order.urls', namespace='order')), # 订单模块
url(r'^', include('goods.urls', namespace='goods')), # 商品模块
db基本模型类模块:
因为每个模型类都要有相同的一些字段所以,采用模块继承的方法使代码缩短创建db包,在其base_models模块下创建基础类 :
from django.db import models
class BaseModel(models.Model):
'''模型抽象基类'''
create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
update_time = models.DateTimeField(auto_now=True, verbose_name='更新时间')
is_delete = models.BooleanField(default=False, verbose_name='删除标记')
class Meta:
# 说明是一个抽象模型类
abstract = True