个人博客,记录知识防止遗忘
django(二)基础环境搭建、对接数据库
django(二)基础环境搭建、对接数据库

django(二)基础环境搭建、对接数据库

django是基于python的web框架,使用MVC架构(django自称 MTV)
本文介绍在windows系统上搭建django环境的方法,linux系统部署方法类似,这里偷个懒,不再说明。

内容大纲

1    python安装

下载个3.8.5版本的python,按照提示安装即可
https://www.python.org/ftp/python/3.8.5/python-3.8.5-amd64.exe
具体的版本选择可以参见django官网文档
https://docs.djangoproject.com/zh-hans/3.1/faq/install/#faq-python-version-support
image.png

2    django3.0 安装

首先在D盘新建一个目录,命名为django_cal
随后打开vscode,将该目录添加到工作区
然后打开cmd终端,确认python和pip版本,我这电脑是3.8
image.pngimage.png

进入该目录,创建venv虚拟环境,命名为.venvimage.png
完成后运行activate.bat 打开虚拟环境,若要退出虚拟环境,输入deactivate 即可
更多venv虚拟环境的知识,请查看我的另一篇文章
python的虚拟环境(venv)使用
image.png

# 更换pip全局镜像源
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple/

# 安装django3.0
pip install django==3.0

image.png
pip list 确认已安装成功
image.png
至此,基本的django环境便搭建完成了,但是目前仍然没有创建任何项目

3    创建django 项目和应用

在 Django 中,每一个应用都是一个 Python 包,并且遵循着相同的约定。
Django 自带一个工具,可以帮你生成应用的基础目录结构,这样你就能专心写代码,而不是创建目录了。

项目和应用有什么区别?
应用是一个专门做某件事的网络应用程序——比如博客系统,或者公共记录的数据库,或者小型的投票程序。
项目则是一个网站使用的配置和应用的集合。项目可以包含很多个应用。应用可以被很多个项目使用。

本文创建一个项目 project_1,其中再创建一个应用app_1

3.1 创建工程

进入虚拟环境,执行命令

django-admin startproject project_1

可以看到已经生成了一个项目project_1
image.png

3.2 创建应用

python manage.py startapp app_1

image.png

3.3 setting中安装应用

创建好应用之后,还需要修改 project_1/project_1/setting.py
将新创建的app_1添加到 INSTALLED_APPS 例如

4    更换数据库(sqlite3 –> mariadb)

django自带一个轻量级数据库 sqlite3,但此数据库基本只用于测试,生产中往往需要更换成其他性能更强的数据库。
这里我选择mysql的社区版 mariadb 10.5.9
若仅仅是测试,嫌麻烦,也可直接跳过本节,直接使用默认的sqlite3

以下为更换步骤:

先去mariadb官网下载合适的版本,我这里下载的是windows版64位,10.5.9的
https://mariadb.org/download/

随后直接安装即可,安装时输入root密码,成功后会自动运行。
可以用捆绑安装的轻量级工具HeidiSQL连接,也可以用其他mysql工具连接

新创建一个数据库 django_cal
image.png
image.png
其实从安全角度出发,应该再新建个帐户,只授权给其django_cal的权限。这里懒得搞了,直接root用户整起

随后在虚拟环境中安装驱动 mysqlclient

pip install mysqlclient

image.png
随后修改project_1中的setting.py文件,将默认的sqlite数据库替换成已安装并启用的mariadb

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'django_cal',
        'USER': 'root',
        'PASSWORD': 'abc123',
        'HOST': '127.0.0.1',
        'POST': '3306',
    }
}

image.png
至此,django默认的sqlite3 已经替换成了mariadb。

执行以下2条命令来生成数据库表格

更新数据库
Django中通过以下命令来更新数据库,在每次创建Model时,执行该命令,在数据库中生成对应的表:

# 不指定app,则会全局生效
python manage.py makemigrations
python manage.py migrate

# 指定具体app,则只对该app生效
python manage.py makemigrations app_1
python manage.py migrate app_1

image.png
查看数据库,确认表已生成
image.png

5    语言、时区、后台管理员

修改project_1中的setting.py文件,将默认的语言时区替换成中国,上海

LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Shanghai'

image.png

随后使用以下命令创建超级管理员

python manage.py createsuperuser 

image.png

6    django启动

至此,基本的django环境已搭建完成,可以尝试启动

注意:
建议搭配screen 或 tmux 这种虚拟终端工具运行django(推荐tmux)
或者使用nohup … & 来将django挂到后台(不推荐)
具体的screen和tmux以及nohup命令差别,可以参考我的其他文章:
screen与tmux实际使用及对比

# 在manage.py的同级目录下使用以下命令启动django框架,默认监听8000端口
python manage.py runserver

image.png
image.png
可以看到,django环境已成功建立。
访问 http://127.0.0.1:8000/admin 可以打开超级管理员登录页面
image.png
image.png

至此,基本的django环境已经搭建成功,可以开始实现一些简单页面了,
例如可以编写一个加法页面,从而熟悉django MTV基本的使用方法
具体可以参考我的其他博客文章

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注