开一个新坑,django 开发。

Django 介绍

  Django 是一个开放源代码的 Web 应用框架,由 Python 写成。利用 Django 和相关的 html 和 CSS 知识,我们可以轻松构建出一个简单的网站。本文主要介绍使用 Django 的一些准备工作。

安装 Django

  首先,你需要 Python 环境。这里以 Python3 环境为例。安装有两种方式:命令行安装使用开发软件 Pycharm

  这里以 Linux 操作系统为例。首先打开命令行窗口,建立虚拟环境。

而后激活此虚拟环境。

如果想要停止此虚拟环境,你可以使用deactivate来关闭之。然后我们来下载 Django。

如果下载速度很慢,你可以尝试更换成国内镜像源。例如pip install Django -i https://pypi.tuna.tsinghua.edu.cn/simple

Pycharm 中的使用相对而言简单许多。在项目文件下新建项目,而后在文件->设置->项目->Python解释器中安装 Django 即可。

开始使用 Django

新建 Django 项目

  下载完 Django 库后,我们需要在我们的项目文件夹中新建一个 Django 项目,这将告诉 Django,这不是一个纯 Python 项目。首先我们在 Pycharm 的终端或者命令行窗口运行以下指令:

1
django-admin startproject <projectname> .

其中,<projectname>是项目名称。

如果你使用的是Pycharm

Professional Edition,那么你可以直接在创建项目之初就创建Django项目,而无需上述的多步操作。但需要注意,在项目的setting.pyTEMPLATES中第一个字典的键DIRS存在[os.path.join(BASE_DIR, templates)],它将影响静态文件查找位置,最好删去。

注意,上述的命令语句千万不要忘记末尾的.。遗漏了这个句点将在后续项目部署上需要额外的复杂操作。

  最后运行python manage.py runserver,检查 Django 是否能正确运行。若可以,则初步配置成功。

Django 项目中的文件结构

1
2
3
4
5
6
7
8
9
<projectname>
├─manage.py 【项目管理、启动项目、创建应用、数据管理】【无需更改】

└─<projectname>
├─__init__.py
├─settings.py 【项目配置文件】【例如注册应用、链接数据库】
├─urls.py 【url和函数对应关系】【主要编写的部分】
├─asgi.py 【接收网络请求】【无需更改】
└─vsgi.py 【接收网络请求】【无需更改】

新建应用

  根据项目的业务逻辑,我们将其分为多个应用来分开管理。我们先新建第一个应用,在终端输入命令

1
python manage.py startapp <appname>

于是我们得到这样的目录。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<projectname>
├─manage.py 【项目管理、启动项目、创建应用、数据管理】【无需更改】

├─<appname>
| ├─__init__.py
| ├─admin.py 【后台管理界面】
| ├─apps.py 【启动类】
| ├─models.py 【在数据库中创建对应表】
| ├─tests.py 【测试类】
| ├─views.py 【函数】
| └─migrations 【数据库迁移记录】
| └─__init__.py
|
└─<projectname>
├─__init__.py
├─settings.py 【项目配置文件】【例如注册应用、链接数据库】
├─urls.py 【url和函数对应关系】【主要编写的部分】
├─asgi.py 【接收网络请求】【无需更改】
└─vsgi.py 【接收网络请求】【无需更改】

  新建应用后,我们需要对其注册。我们找到应用下的apps.py,找到其启动类类名,以下是一个例子。

1
2
3
4
5
6
7
# filename: apps.py
from django.apps import AppConfig


class App01Config(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'app01'

于是我们修改settings.py中的内容:

1
2
3
4
5
6
7
8
9
10
11
# filename: settings.py
# 省略

INSTALLED_APPS = [
# 省略

'<appname>.apps.APP01Config',

]

#省略

于是,新的应用已经注册完毕,我们可以在该应用上开发了。

- -