本文主要介绍 Django 及其他必备软件的安装与配置, 并创建了简单的 Project 和 App.
点击查看索引本系列是根据 Vitor Freitas 的Django教程整理而来,如有疑问可参考 原文 。
安装
我们一共需要安装 4 个主要软件:
- Python
- Virtualenv
- Django
- IDE(推荐VSCode)
Python
Django 是基于 Python 的一个网络框架,所以其运行需要 Python 环境。
在 Python 官网下载并安装最新版本的 Python。
安装过程中要注意 把 Python 添加到 PATH 中 。
之后打开 CMD ,输入:
python --version
看到:
Python 3.10.2
即代表Pyhon安装成功。
Virtualenv
作为一个复合型高端人才 (指什么都会什么都不精) ,我们的系统中可能需要安装 不同版本 的 Pyhon ,或者为了解决 Python 中 不同项目所需的模块 出现冲突,需要不同的 环境 ,此时就需要使用 Pyhon 的 虚拟环境 了。
Virtualenv 是一个轻量级的 Python 虚拟环境管理器,也可以选择 Miniconda ,如果是对于 科学计算和大数据 也有需求的话, Anaconda 是你的最佳选择。
对于这部分,网络上已经有很多教程,本人使用的也是 Anaconda,所以不再赘述。
Django
创建并激活虚拟环境后,我们就需要安装Django了。
在 Terminal 输入:
pip install django
如果是 conda 类环境的话,也可以输入:
conda install django
最后一行出现 “Successfully installed django-xxxxxxxx” 即代表安装成功。
IDE
在 VSCode官网 下载安装包安装即可。
创建第一个 Project
在 Terminal 中输入:
django-admin startproject myproject
就会建立一个新的 Project。 其中结构为:
- myproject/
- manage.py
- myproject/
- __init__.py
- settings.py
- urls.py
- wsgi.py
manage.py 是用于控制 Project 的命令集成文件。
__init__.py 表示此文件夹是一个 Python package 。
settings.py 顾名思义是 Project 的配置文件。
urls.py 是负责 Project 的结构的文件。
wsgi.py 用于部署的简单网关接口。
在 Terminal 中输入:
python manage.py runserver
即可启动网站的本地服务器,启动后打开网址 http://127.0.0.1:8000 即可看到一个简单的欢迎界面。此时说明你的第一个 Project 正在完全正常地运行。
在 Terminal 按下 Ctrl+C 即可关闭服务器。
创建一个 Django Apps
在 Django 中有两个重要的内容,一个是 Project ,另一个是 App 。
- app : 一个实现某功能的 Web 应用程序。一个 App 通常由一组 models (模型)、 views (视图)、 template (模板)、 test (测试) 组成。
- Project :是 configuration (配置) 和 app 的集合。一个 project 可以由多个 app 组成,也可以由一个 app 组成。
注意: app 是无法离开 project 而运行的!
在 manage.py 存在的目录中,在 Terminal 中输入:
django-admin startapp boards
即可创建一个名为 boards 的 app,这样我们的文件结构就变成了:
- myproject/
- manage.py
- myproject/
- __init__.py
- settings.py
- urls.py
- wsgi.py
- boards/ <– here!
- migrations/
- __init__.py
- __init__.py
- admin.py
- apps.py
- models.py
- tests.py
- views.py
- migrations/
migrations/ :存储一些文件来跟踪在 models.py 文件中的更改,从而保持数据库和 models.py 同步。
admin.py :这是一个名为 Django Admin 的内置 Django app 的配置文件。
apps.py :该 app 本身的配置文件。
models.py:在此处定义 app 的 实体 , models 会被 Django 自动翻译为数据库表。
tests.py :为 app 编写测试的地方。
views.py :处理 app request/response circle 的地方。
启用 app
在 settings.py 中找到:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
向其中添加:'boards'
:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'boards',
]
Hello World!
打开 boards 中的 views.py ,添加以下代码:
from django.http import HttpResponse
def home(request):
return HttpResponse('Hello, World!')
views 接收 HttpRequest
object,返回一个 HttpResponse
object,其中 request 是函数的一个 parameter 。这里我们就定义了一个名为 home 的 view,它的作用是输出 “Hello World!” 。
接下来我们设置 何时 Django 会提供此 view,这是需要在 urls.py 中进行操作:
from django.contrib import admin
from django.urls import path
from boards import views
urlpatterns = [
path('admin/', admin.site.urls),
path('', views.home, name='home'),
]
其中添加了 path('', views.home, name='home')
并导入了其需要的包。path
函数中第一个 parameter 为该页面 url 的相对路径,此处设置为 ''
代表 http://127.0.0.1:8000 即为该页面的 url,如果设置为: path('homepage', views.home, name='home')
,那么 url 就会变成 http://127.0.0.1:8000/homepage/ 。
在 Terminal 中运行:
python manage.py runserver
打开我们的网址,即可看到: