DJANGO-天天生鲜项目从0到1-001-环境框架搭建
本项目基于B站UP主‘神奇的老黄’的教学视频‘天天生鲜Django项目’,视频讲的非常好,推荐新手观看学习
https://www.bilibili.com/video/BV1vt41147K8?p=1
一、开发环境搭建
linux虚拟机环境:CentOS7
1.使用Anaconda管理环境,创建新的开发环境:
conda create -n dailyfresh
2.切换至开发环境:
source activate dailyfresh
3.安装package(都是用conda默认的最新版本,python-3.8.2,django-3.0.3):
conda install python
conda install django
conda install mysqlclient
二、搭建项目框架
1.cd至项目目录,创建项目
django-admin startproject dailyfresh
2.cd至dailyfresh根目录,创建各个应用,并配置url
python manager.py startapp user
python manager.py startapp goods
python manager.py startapp cart
python manager.py startapp order
并创建apps目录,将各个应用移动至apps目录下,并在apps下创建__init__.py文件,让该目录表示为一个package
mkdir apps
mv {user,goods,cart,order} apps
cd apps
touch __init__.py
3.创建templates目录,在其目录下在创建各个应用子目录
mkdir -p templates/{goods,user,cart,order}
以上目录结构如下:

4.编辑settings.py
4.1 设置apps路径
因为在各个app前添加了一个父级apps目录,所以注册应用和配置url等指定app路径时需要多加一层apps/,为了避免多这一步的麻烦,需要再settings中将apps的路径也添加至根目录下
import sys
sys.path.insert(0, os.path.join(BASE_DIR, 'apps'))
4.2 设置 ALLOWED_HOSTS
LOCAL_IP = '192.168.183.129' #本机IP地址,运行ifconfig查看
ALLOWED_HOSTS = [LOCAL_IP, ]
4.3 添加apps

4.4 设置TEMPLATES和STATICFILES_DIRS

STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')]
4.5 设置数据库

4.6 设置本地化

5. 启动项目
pyr 为设置的别名:alias pyr='python manage.py runserver 0:8000'

主机访问成功

6. 创建模型类
6.0 创建模型基类 BaseModel
对于所有模型表中的公共字段,可以创建一个模型基类,在此类中定义公共字段,让其他模型继承此类
cd项目根目录
mkdir db
cd db
touch __init__.py base_model.py
编辑base_model.py,注意最后Meta中需要制定该类是一个抽象类(abstract = True),才能被其他类继承

6.1 使用django自带的用户模型抽象类
使用django自带的用户模型抽象类,其已包含用户名、密码、邮箱、是否失效等属性,如果有自己额外需要添加的字段,直接在类中添加即可
6.1.1.导入django用户抽象类
from django.contrib.auth.models import AbstractUser
6.1.2.创建用户模型类,继承 AbstractUser和前面定义的 BaseModel

6.1.3.设置settings.py文件,让django认证系统使用我们定义的用户模型类User,这样就能将django创建的用户插入只我们定义的表中,而不是使用其原自带的表(auth_user)
AUTH_USER_MODEL = 'user.User' #django认证系统使用的模型类
若没配置,则runserver时会爆如下错误:
Add or change a related_name argument to the definition for 'User.groups' or 'User.groups'.
Add or change a related_name argument to the definition for 'User.user_permissions' or 'User.user_permissions'.

6.1.4.生成迁移文件
python manage.py makemigrations
python manage.py migrate
若未生成迁移文件,则runserver时会爆如下错误:
raise ValueError("Dependency on app with no migrations: %s" % key[0])
ValueError: Dependency on app with no migrations: user

6.2 富文本类型
借助富文本编辑器,网站的编辑人员能够像使用offfice一样编写出漂亮的、所见即所得的页面。此处以tinymce为例,其它富文本编辑器的使用也是类似的。
6.2.1 django-tinymce安装
在虚拟环境中安装包:
pip install django-tinymce
6.2.2 添加设置
编辑 settings.py 文件
添加应用:tinymce
INSTALLED_APPS = (
...
'tinymce',
)

添加编辑器配置
TINYMCE_DEFAULT_CONFIG = {
'theme': 'advanced',
'width': 600,
'height': 400,
}
编辑项目级的urls文件
urlpatterns = [
...
path('tinymce', include('tinymce.urls')), # 富文本类型
]

6.2.3 编辑model.py文件,并进行迁移
from tinymce.models import HTMLField
detail = HTMLField(blank=True, verbose_name='商品详情')
至此,去Admin管理页面看应该可以正常显示富文本编辑器,但是我打开看并没有成功,可能是django或者tinymce版本问题,于是换一个富文本编辑器试试看

django-ckeditor只需安装和注册app即可使用
6.2.4django-ckeditor安装
$ pip install django-ckeditor
6.2.5 注册应用
INSTALLED_APPS = (
...
'ckeditor', # 富文本编辑器 django-ckeditor
)
6.2.6 模型中使用,并进行迁移
from ckeditor.fields import RichTextField
detail = RichTextField(blank=True, verbose_name='商品详情')
最后效果如下:

DJANGO-天天生鲜项目从0到1-001-环境框架搭建的更多相关文章
- django天天生鲜项目
.后台admin管理天天生鲜商品信息 models里 from django.db import modelsfrom tinymce.models import HTMLField #需要pip安装 ...
- DJANGO-天天生鲜项目从0到1-007-首页静态化与缓存
本项目基于B站UP主‘神奇的老黄’的教学视频‘天天生鲜Django项目’,视频讲的非常好,推荐新手观看学习 https://www.bilibili.com/video/BV1vt41147K8?p= ...
- python 天天生鲜项目
python 天天生鲜项目 django版:https://github.com/Ivy-1996/fresh flask版:https://github.com/Ivy-1996/flask-fre ...
- Django之天天生鲜项目
准备工作 1.配置settings.py内置文件 注意: AUTH_USER_MODEL配置参数要在第一次迁移数据库之前配置,否则可能django的认证系统工作不正常 2.创建应用 3.配置主路由 一 ...
- DJANGO-天天生鲜项目从0到1-012-订单-用户订单页面
本项目基于B站UP主‘神奇的老黄’的教学视频‘天天生鲜Django项目’,视频讲的非常好,推荐新手观看学习 https://www.bilibili.com/video/BV1vt41147K8?p= ...
- DJANGO-天天生鲜项目从0到1-011-订单-订单提交和创建
本项目基于B站UP主‘神奇的老黄’的教学视频‘天天生鲜Django项目’,视频讲的非常好,推荐新手观看学习 https://www.bilibili.com/video/BV1vt41147K8?p= ...
- DJANGO-天天生鲜项目从0到1-010-购物车-购物车操作页面(勾选+删改)
本项目基于B站UP主‘神奇的老黄’的教学视频‘天天生鲜Django项目’,视频讲的非常好,推荐新手观看学习 https://www.bilibili.com/video/BV1vt41147K8?p= ...
- DJANGO-天天生鲜项目从0到1-009-购物车-Ajax实现添加至购物车功能
本项目基于B站UP主‘神奇的老黄’的教学视频‘天天生鲜Django项目’,视频讲的非常好,推荐新手观看学习 https://www.bilibili.com/video/BV1vt41147K8?p= ...
- DJANGO-天天生鲜项目从0到1-009-搜索功能实现(django-haystack+whoosh+jieba)
本项目基于B站UP主‘神奇的老黄’的教学视频‘天天生鲜Django项目’,视频讲的非常好,推荐新手观看学习 https://www.bilibili.com/video/BV1vt41147K8?p= ...
- DJANGO-天天生鲜项目从0到1-006-首页-内容展示
本项目基于B站UP主‘神奇的老黄’的教学视频‘天天生鲜Django项目’,视频讲的非常好,推荐新手观看学习 https://www.bilibili.com/video/BV1vt41147K8?p= ...
随机推荐
- 【WebLogic使用】3.WebLogic配置jndi数据源
参见博客:https://blog.csdn.net/acmman/article/details/70146603 参考视频教程: 一.什么是jndi数据源JNDI是Java命名与目录接口(Java ...
- 腾讯IEG--2020春招实习
笔试 正常批就五道编程题,可以跳出使用本地IDE,题目很好理解,基本都能写出来,但是要过全部用例不容易.具体题目和题解可以看看这位大佬的牛客帖子,我的就不献丑了,有两题都只过了40%,我当时是用C#做 ...
- 关于idea的一些快捷键
最近在用idea写代码,熟悉一些快捷键的使用能够让写代码的速度提高,以下快捷键是默认idea的快捷键,当然我们可以自己修改的: 自动补全代码快捷键:CTRL+alt+V 自动格式化代码:CTRL+al ...
- Docker 快速入门(一)- 情况介绍和安装
欢迎您! 很高兴您想学习 Docker . 这个页面包含了如何开始使用 Docker 的循序渐进的说明. Docker 快速入门培训模块教你如何: 设置 Docker 环境(在本页) 构建并运行您的镜 ...
- nova api报错network问题
安装openstack Rocky版本的时候,在未安装网络服务前,创建虚拟机,报以下错误 [root@controller2 nova]# openstack server create --flav ...
- 我用shell写了个mud游戏:武林群侠传
零.前言 学习shell的时候,无聊的我,写了个简单版的文字mud,暂且叫武林群侠传吧.可能90后都不知道文字mud是什么了--哈哈 壹.效果 先看下效果吧,GIF图如下 文字效果如下: [root@ ...
- 一.vue 初识
jquery开发的问题: 提供了简单的api,简化了操作dom的方式,但没有对业务逻辑分层,需要维护数据和dom间的同步.1.vue做的事情就是:能够将视图(web界面上能看到的元素--文字/输入框/ ...
- 记一次服务器被植入挖矿木马cpu飙升200%解决过程
线上服务器用的是某讯云的,欢快的完美运行着Tomcat,MySQL,MongoDB,ActiveMQ等程序.突然一则噩耗从前线传来:网站不能访问了. 此项目是我负责,我以150+的手速立即打开了服务器 ...
- 什么是jsp?
1.什么是jsp? jsp就是java 服务器页面(java server page) 2.jsp有什么用? jsp的出现是为了解决Servlet页面显示方面的不足. 3.jsp的三种脚本: 4.js ...
- Linux下C++动态加载so 调用方法
Windows 下的C++动态加载DLL调用方法 文献参考 http://man7.org/linux/man-pages/man0/dlfcn.h.0p.html http://man7.org/l ...