从零开始搭建五脏俱全的django项目!

本文详细介绍了从零开始搭建一个完整的Django项目的过程,包括项目创建、设置、数据库配置、语言和时区设定、静态文件管理、应用创建及注册、URL路由配置、以及数据库模型的抽象基类设计。通过这些步骤,可以构建出一个功能齐全的Django项目框架。
摘要由CSDN通过智能技术生成

项目整体框架搭建:

    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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值