创建 django 项目与应用

本贴最后更新于 798 天前,其中的信息可能已经时移世改

创建django项目

安装Django

首先需要安装django,进入虚拟环境中运行命令:

pip install django==3.2.13  # 指定3.2的版本

Django目前长期稳定版是3.2版本

image.png

创建项目

安装django后,会安装一个django-admin程序,用来创建和管理django项目。

要创建一个django项目可以运行如下命令:

django-admin startproject <project_name> [project_path]

其中startproject是创建子命令,<project_name>是项目名必须提供,project_path是创建项目的路径,如果省略会把项目创建在当前目录下。

例如运行命令:

django-admin startproject study_django

这会在当前目录创建名为study_django的目录,目录中的内容如下:

study_django/					# 项目根目录,目录名可以随意更换
	manage.py				# 管理django项目命令行工具
    study_django/				# 项目目录,python包,
        __init__.py
        settings.py           			# 项目配置文件
        urls.py					# 项目根路由文件
        asgi.py					# 兼容asgi协议的web服务器入口文件
        wsgi.py					# 兼容wsgi协议的web服务器入口文件

但是这样项目根目录文件名和项目目录名相同,有时候我们不需要创建最外层的目录,只把项目生成在当前目录下可以运行如下命令:

django-admin startproject study_project .  # 路径参数是. 代表当前目录

运行项目

在项目根目录下运行如下命令:

python manage.py runserver ip:端口

命令不带ip和端口参数,服务将默认运行在127.0.0.1:8000

运行成功后在浏览器访问http://127.0.0.1:8000/将会看到欢迎页面。

1660650873057.png

注意:这只是一个Django 自带的用于开发的简易服务器,它为开发而设计,不要应用在生产环境中。

修改时区和语言

上一步中的欢迎页面看起来是英文的,django框架做了国际化,我们只需要在settings.py中修改如下配置

LANGUAGE_CODE = 'zh-hans'		# 语言配置为中文

TIME_ZONE = 'Asia/Shanghai'		# 时区配置为亚洲上海

即可配置好中文和正确的时区。再次访问http://127.0.0.1:8000/,欢迎页面如下:

1660651058722.png

创建django应用

什么是应用

在Django中有项目和应用的概念。

每一个应用都是一个 Python 包,并且遵循着相同的约定和结构。

Django 自带一个工具,可以帮你生成应用的基础目录结构,这样你就能专心写代码,而不是创建目录了。

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

也可以简单理解为一个项目即是一个网站,一个应用就是这个网站的某一个功能板块。

例如:豆瓣网是一个项目,其中读书,电影,音乐...等是一个个的应用。

1660651350306.png

创建应用

在项目根目录下运行如下命令:

python manage.py startapp crm

其中startapp是子命令,crm是应用名。

这将会在项目根目录下创建一个 crm 目录,它的目录结构大致如下:

crm/
    __init__.py
    admin.py              # django后台站点配置入口
    apps.py               # 应用信息配置入口
    migrations/           # 数据库迁移历史信息目录
        __init__.py
    models.py             # 数据模型模块
    tests.py              # 单元测试
    views.py              # 应用视图模块

这个目录结构包括了crm应用的全部内容。

第一个视图

打开crm/views.py,编写如下代码:

from django.http import HttpResponse


def index(request):
    return HttpResponse("我是首页面")

这是 Django 中最简单的视图。如果想要看见效果,需要将一个url映射到它。

添加路由

crm目录下创建子路由模块urls.py,编写如下代码:

from django.urls import path
from . import views

urlpatterns = [
    path('index/', views.index)
]

再到主路由模块study_django/urls.py中添加子路由如下:

from django.urls import path, include

urlpatterns = [
	...
    path('crm/', include('crm.urls'))  # 添加一条include
]

做完上面的操作之后,重新运行服务,就可以在浏览器中通过urlhttp://127.0.0.1:8000/crm/index/访问在上每一步创建的视图。如果一切正常你会看到如下页面:

1660651818678.png

回帖
请输入回帖内容 ...