Django5博客网站开发实践1—网站从0开发到上线服务器的简要流程介绍

发布时间:2024-08

浏览量:375

本文字数:1881

读完约 7 分钟

一、基础环境搭建

1、安装python

此处略去

项目采用最新版的python和django环境

python3.12

django5.1

2、安装pip

py -m ensurepip --upgrade

配置pip镜像源(国内源)

阿里云 http://mirrors.aliyun.com/pypi/simple/ 

豆瓣 http://pypi.douban.com/simple/ 

中国科学技术 http://pypi.mirrors.ustc.edu.cn/simple/

全局配置某个pip源

pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/

升级pip

python.exe -m pip install --upgrade pip

3、安装Django模块

pip install Django

二、创建django项目

# 创建项目
django-admin startproject Django_web

# 项目内创建应用
python manage.py startapp index 
python manage.py startapp wiki

# 迁移创建数据-表
python manage.py makemigrations
# 合并迁移(解决迁移冲突)
python manage.py makemigrations --merage
python manage.py migrate


# 创建后台admin-超级管理员
python manage.py createsuperuser

# 运行项目
python manage.py runserver

注意:在已有数据的情况下增加字段(某些字段dajngo自动创建索引,导致字段赋值默认值造成冲突,此时需要取消自动索引 db_index=False。迁移出问题时删除迁移文件重新迁移)

新创建的应用需要在项目settings里进行注册(INSTALLED_APPS)

三、markdown编辑器应用

# 后台markdown编辑器
pip install django-mdeditor
# 前端文章显示markdown内容-转HTML
pip install markdown
# 图片上传功能支持
pip install pillow
# 实现展示代码高亮
pip install Pygments
# 实现代码高亮
# 代码高亮的不同样式
# cd切换到静态文件目录后执行:(把创建的样式文件存储到此目录)
pygmentize -S default -f html -a .codehilite > code.css
pygmentize -S friendly -f html -a .codehilite > code_friendly.css
pygmentize -S colorful -f html -a .codehilite > code_colorful.css
pygmentize -S fruity -f html -a .codehilite > code_fruity.css
pygmentize -S pastie -f html -a .codehilite > code_pastie.css
pygmentize -S manni -f html -a .codehilite > code_manni.css
pygmentize -S emacs -f html -a .codehilite > code_emacs.css


四、线上部署

采用宝塔面板部署+映射域名(国内服务器域名需要备案通过)

1、导出项目依赖包

pip freeze > requirements.txt

2、项目打包

# 收集静态资源,在项目的 setting.py 文件配置
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles') 

# 项目根目录下创建staticfiles文件夹
python manage.py collectstatic

打包为压缩包传到宝塔面板的项目目录下解压缩,解压以后删除压缩包

默认网站项目都放在wwwroot目录下

image.png


3、配置服务器

宝塔面板添加python项目

填写项目信息

打开外网映射

image.png

image.png

4、配置静态文件

打开python项目设置的uwsgi配置中加入以下映射,使得能外网访问能正常显示网站样式以及上传的图片等

#    项目settings里的STATIC_ROOT路径,保证网站静态资源在外网能正常加载
static-map = /static=/www/wwwroot/wenfengwiki/staticfiles
#    项目settings里的MEDIA_ROOT路径,收集上传的资源路径(图片等)
static-map = /media=/www/wwwroot/wenfengwiki/uploads

image.png


^