天天生鲜项目开发笔记

说在前面的话

大学四年,忙忙碌碌,什么都学了,又好像什么都没学,总之要毕业了,毕设题目是“生鲜配送系统”,B站上找到了一个天天生鲜的项目开发教程,之后文章记录每天学习开发遇到的大坑,以供自己回顾学习,同时希望可以帮助其他人,欢迎指正!

正文开始

开发工具版本(一定注意,不然后面问题多多)
pycharm2021.3.1
python3.6.8
Django3.2.18
MySQL-8.0.23-winx64
Navicat Premium 15.0.27
我电脑上目前装的开发工具只有这些,后面用到的我会在之后进行补充。

由于视频教程是19年的,比较早,所以开发版本有所出入,视频教程开发工具版本;
Django1.8.2
其他的不清楚,可根据自己实际情况进行版本选择。 开发工具的安装配置等,网上资源很多,不在这里赘述了。

1、搭建django框架

视频教程P1-P10讲的都是系统的设计,看视频学习就行,可适当动手操作。
P11项目构架搭建,在cmd中进入想创建项目的地址,搭建Django框架
使用到的语句:

>django-admin startproject djangoProject
>python manage.py startapp user
>python manage.py startapp product
>python manage.py startapp cart
>python manage.py startapp order

python天天生鲜 天天生鲜项目笔记_python天天生鲜


图片报红,因为有文件夹和项目同名,报错是因为没有进入项目文件,找不到manage.py

也可以直接在pycharm中进行项目创建,具体可参考链接: pycharm创建django项目

根据视频教程项目文件目录如下:

python天天生鲜 天天生鲜项目笔记_python天天生鲜_02


测试运行,控制台输入下面代码,点击http://127.0.0.1:8000,启动成功!

python manage.py runserver

python天天生鲜 天天生鲜项目笔记_python_03

2、在djangoProject/setting.py中更改配置

(1)注册APP

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'tinymce',  # 富文本编辑器
    'user',  # 用户模块
    'cart',  # 购物车模块
    'order',  # 订单模块
    'product',  # 商品模块
]

同时在开头添加路径配置

import os
import sys

BASE_DIR = Path(__file__).resolve().parent.parent
sys.path.insert(0, os.path.join(BASE_DIR, 'apps'))

(2)配置数据库

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'text',  # 准备存放数据的数据库
        'USER': 'root',  # mysql的用户名
        'PASSWORD': '',  # 数据库密码使用你自己的
        'HOST': '127.0.0.1',
        'PORT': 3306,
    }
}
# 生成迁移文件 python manage.py makemigrations
# 执行迁移文件,同步到数据库 python manage.py migrate
# 从已有mysql数据库逆向创建Models python manage.py inspectdb >> myapp/models.py

(3)在项目文件目录下创建两个文件夹:templatesstatic
并在setting.py文件中添加设置

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',
            ],
        },
    },
]
STATIC_URL = '/static/'  # 在这行下添加静态文件路径配置
STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')]

(4)更改语言和时区

LANGUAGE_CODE = 'zh-hans'

TIME_ZONE = 'Asia/Shanghai'

3、在djangoProject/urls.py文件下添加配置

(1)添加APP的路径(记得导入django.urls)

urlpatterns = [
    path('admin/', admin.site.urls),
    path('tinymce/', include('tinymce.urls')),  # 富文本编辑器
    path('user/', include(('user.urls', 'user'), namespace='user')),  # 用户模块
    path('cart/', include(('cart.urls', 'cart'), namespace='cart')),  # 购物车模块
    path('order/', include(('order.urls', 'order'), namespace='order')),  # 订单模块
    path('', include(('product.urls', 'product'), namespace='product')),  # 商品模块

]

注意说明:
include()这个方法在视频中的用法,我实际运行中是报错的,我查了下Django的官方文档,改成上面我的代码是可以运行的,可能是Django版本的原因,具体原因希望有大佬也帮我讲讲(//▽//)
具体参考链接: URLconfs 中使用的 django.urls 函数 教程视频中使用的是url方法,但是我用url方法运行一直报错,试了下发现用path方法可以,不知道为什么,有大佬看见可以解答下。
(2)在创建的应用程序的文件下都创建urls.py

4、在djangoProject/init.py文件下添加配置

import pymysql

pymysql.install_as_MySQLdb()

5、创建Models类

按照视频教程进行导入,代码会在我全面开发学习完进行上传

6、数据库迁移

在终端上运行下面程序

python manage.py makemigrations
python manage.py migrate

注意说明:
网上有些Django项目链接数据库需要安装mysqlclient,但是我安装一直报错,虽然没装这个包但是我的项目依然可以运行。
pip install mysqlclient
有大佬看见可以帮忙解释下。