osdb
osdb
myobjectmyamdinwebmobile
django-admin startproject myobject
cd myobject
# 在项目中创建一个myadmin应用(项目的后台管理)
$ python manage.py startapp myadmin

# 在项目中再创建一个web应用(项目前台大堂点餐应用)
$ python manage.py startapp web

# 在项目中再创建一个mobile应用(移动客户点餐端应用)
$ python manage.py startapp mobile

# 创建模板目录
$ mkdir templates

# 创建静态资源目录
$ mkdir static
myamdinwebmobile文件夹里,新建views文件夹,再把原来的views.py删除,再在views文件夹里新建index.py和__init__.py文件,因为这样此文件夹就是一个python包。最后还要在三个应用里面创建子路由urls.py

(3). 项目框架配置 :settings.py

# myobject/myobject/settings.py  项目配置文件

# 1. 配置允许访问的主机名信息
ALLOWED_HOSTS = ['*']
或
ALLOWED_HOSTS = ['localhost','127.0.0.1','192.168.2.240']

# 2. 将myadmin、mobile和web的应用添加到项目框架结构中
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'myadmin',
    'web',
    'mobile',
]

# 3. 配置模板目录 os.path.join(BASE_DIR,'templates')
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR,'templates')],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

# 4. 配置项目的数据库连接信息:
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'osdb',
        'USER': 'root',
        'PASSWORD': '123456789',
        'HOST': 'localhost',
        'PORT': '3306',
    }
}

# 5. 设置时区和语言 
LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Shanghai'

# 6. 配置网站的静态资源目录
STATIC_URL = '/static/'
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'static'),
]

(4). 项目urls路由信息配置,先配置好总路由,然后去写视图文件views.py,最后再去写子路由

  • 4.1 打开根路由文件:myobject/myobject/urls.py路由文件,编写路由配置信息
#from django.contrib import admin
from django.urls import include,path

urlpatterns = [
    #path('admin/', admin.site.urls),
    path('', include("web.urls")),                # 默认前台大堂点餐端
    path('myadmin/', include("myadmin.urls")),     # 后台管理端
    path('mobile/', include("mobile.urls")),    # 移动会员端
]
  • 4.2 打开项目后台管理路由文件:myobject/myadmin/urls.py路由文件,编写路由配置信息
from django.urls import path
from myadmin.views import index

urlpatterns = [
    # 后台首页
    path('', index.index, name="myadmin_index"),
]
  • 4.3 打开项目前台大堂点餐端路由文件:myobject/web/urls.py路由文件,编写路由配置信息
from django.urls import path
from web.views import index

urlpatterns = [
   # path('', index.index, name="index"),
]
  • 4.4 打开项目移动会员端路由文件:myobject/mobile/urls.py路由文件,编写路由配置信息
from django.urls import path
from web.views import index

urlpatterns = [
   # path('', index.index, name="index"),
]

(5). 编写后台视图测试

# myobject/myadmin/views/index.py
from django.shortcuts import render
from django.http import HttpResponse

#后台首页
def index(request):
    return HttpResponse('欢迎进入点餐系统网站后台管理!')

# myobject/web/views/index.py
from django.shortcuts import render
from django.http import HttpResponse

#前台首页
def index(request):
    return HttpResponse('欢迎进入大堂点餐前台首页!')
# myobject/mobile/views/index.py
from django.shortcuts import render
from django.http import HttpResponse

#移动端首页
def index(request):
    return HttpResponse('欢迎进入移动会员端首页!')

运行测试:如果能正常打开3个端的页面,就说明正常,那就继续往下开发

(6). 摆放后台首页面

开发的小技巧:因为此次项目的主信息是菜品,菜品主要是通过后台上传的,所以要先开发后台。

如果是开发论坛,主信息就是帖子,这个是从前端用户传来的,那就要先开发前端。

{% extends 'myadmin/base.html' %}
{% extends 'myadmin/base.html' %}

{% block main_body %}
  
  这里就是刚才从父模板中剪切过来的代码
{% endblock %}
def index(request):
  '''管理后台首页'''
  return render(request,"myadmin/index/index.html")