环境要求
-
下载、安装 python3
-
安装 pipenv(用于创建python的虚拟环境)
pip3 install pipenv
直接上示例
步骤为:
- 创建并进入目录
- 用pip3安装Django
- 激活虚拟环境
- 创建新的Django项目(project)
- 在项目里创建 pages 程序(app)
- 修改 settings.py
- 运行
创建项目
$ mkdir helloworld
$ cd helloworld
# 激活虚拟环境,此时目录下多了个Pipfile [注意,我们后续的操作,都是在该虚拟环境中进行的]
$ pipenv shell
# 安装Django
$ pip3 install django
# 创建项目到当前目录
$ django-admin startproject helloworld_project ./
现在的目录结构如下:
helloworld
- Pipfile
- Pipfile.lock
- manage.py
- helloworld_project
- __init__.py
- settings.py
- urls.py
- wsgi.py
运行项目
$ python manage.py runserver
访问http://127.0.0.1:8000/可看到Django的默认页面
创建app
一个Django项目里面往往包含多个app,每个app负责一部分功能。
现在我们来创建一个app
# 创建一个名为 pages 的app。执行后,会发现当前目录下多了个pages目录
$ python manage.py startapp pages
在项目级别的settings.py中注册我们的app:
# helloworld_project/settings.py
INSTALLED_APPS = [
'pages.apps.PagesConfig', # 新增
......
]
编写view文件,用于显示hello world
# pages/views.py
from django.http import HttpResponse
def homePageView(request):
return HttpResponse('Hello, World!')
为了能让浏览器找到 homePageView,我们还需要编写urls.py。
请求的导航路径是这样的:项目urls.py -> app的urls.py -> 具体的view。
因此我们需要修改完2个urls.py文件才算完成。
编写app级别的url,把app接受到的请求导向对应的view函数
在pages目录下新建urls.py文件,并输入以下内容。
# pages/urls.py
from django.urls import path
from .views import homePageView
urlpatterns = [
path('', homePageView, name='home')
]
接着,编写项目级别的url文件,把项目接收到的请求导向对应的app。
# helloworld_project/urls.py
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('pages.urls')),
]
$ python manage.py runserver
现在访问 http://127.0.0.1:8000/, 可以看到我们的hello world 显示在页面上。
目录结构解析
为了能自己编写、修改项目,我们需要明白部分关键文件的职责。
settings.py(项目级别)
控制项目的配置,比如,注册app,设置数据库等。
urls.py
管理接收、响应的规则。在这里指明项目允许接收哪些URL,接收后由哪个函数进行处理。
manage.py
用于执行Django的各种指令。比如创建项目、创建app、运行服务等。
views.py
接收请求(request)并返回响应(response)的地方。 可以理解为是个编写业务逻辑的地方。
admin.py
Django有个内置的admin程序,该文件就是用于配置admin程序的。
apps.py
配置app自身的文件。
models.py
用于定义数据库模型,Django会自动为我们转换为数据库表。
migrations/
跟踪models.py文件的变化,以保持models.py和数据库的同步。这个目录里的内容,通常不用理会。
修改国内源
如果执行 pip3 install pipenv
或者 'pip3 install django' 慢或者失败,可以把pip修改为国内镜像源。
pip镜像修改为国内镜像
$ mkdir ~/.pip # 如果有.pip目录就略过这一条。
$ vim ~/.pip/pip.conf
粘贴以下内容[使用的是阿里云的源]
[global]
index-url = http://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host=mirrors.aliyun.com