1. Django简介及安装
2. Django项目创建
3. Django路由配置
4. Django视图和模板
5. Django模型和数据库
6. Django表单和用户认证
7. Django部署和发布
我们将一步步地讲解如何创建一个完整的Django应用程序,并介绍Django的主要特性和最佳实践。
1. Django简介及安装
Django是一个用于Web开发的Python框架,它采用了MVC(Model-View-Controller)的设计模式,可以快速开发出高质量、高性能的Web应用程序。Django的主要特点包括:
- 高度模块化的设计,可以方便地组合各种组件,满足不同的需求;
- 自带ORM(Object Relational Mapping)框架,可以方便地与数据库进行交互;
- 强大的模板系统,可以快速开发出美观的界面;
- 完善的安全机制,包括XSS、CSRF等;
- 支持RESTful API开发,可以轻松地开发出符合RESTful标准的API。
安装Django非常简单,只需要在命令行中运行以下命令即可:
```
pip install django
```
安装完成后,我们可以通过以下命令验证Django是否安装成功:
```
django-admin --version
```
如果安装成功,会显示Django的版本号。
2. Django项目创建
在安装完Django后,我们需要创建一个Django项目,可以通过以下命令创建:
```
django-admin startproject myproject
```
其中,myproject为项目名称,可以根据需要进行修改。
创建完成后,会生成以下文件结构:
```
myproject/
├── myproject/
│ ├── __init__.py
│ ├── asgi.py
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
└── manage.py
```
其中,manage.py是项目管理文件,可以通过它运行开发服务器、执行数据库迁移等操作。
3. Django路由配置
Django的路由配置非常灵活,可以通过正则表达式匹配URL,然后将请求转发给相应的视图函数进行处理。
在Django中,路由配置文件为urls.py,在项目的urls.py文件中,可以配置全局路由,也可以通过include函数引入应用程序的路由。
下面是一个简单的路由配置示例:
```python
from django.urls import path
from . import views
urlpatterns = [
path('hello/', views.hello_world),
]
```
其中,path函数接受两个参数,第一个参数为URL,第二个参数为处理该URL的视图函数。
4. Django视图和模板
视图是Django应用程序的核心组件之一,它负责接
第五步:创建视图函数
在 Django 中,视图函数用于处理从客户端发送的请求并返回响应。通常,每个视图函数都会处理一种特定类型的请求(例如 GET 请求或 POST 请求),并根据需要执行一些操作,例如从数据库中检索数据、渲染模板或返回 JSON 格式的响应。
创建视图函数的方法很简单。首先,打开 `views.py` 文件并添加一个新的视图函数。例如,我们将创建一个名为 `index` 的视图函数来呈现网站的主页。
```python
# blog/views.py
from django.shortcuts import render
def index(request):
return render(request, 'blog/index.html')
```
在上面的代码中,我们导入了 `render` 函数,该函数用于呈现 HTML 模板并返回响应。我们将其用于 `index` 视图函数,它将呈现名为 `blog/index.html` 的模板并返回响应。
第六步:配置 URL 路由
视图函数只处理请求,但它们不能直接与客户端通信。相反,Django 使用 URL 路由将请求路由到适当的视图函数,然后返回响应。
在 Django 中,URL 路由配置存储在一个名为 `urls.py` 的文件中。默认情况下,Django 在项目根目录中创建了一个名为 `urls.py` 的文件,它包含了一个空的 URL 路由配置。为了添加我们的路由,我们将创建一个新的 `urls.py` 文件并将其包含在主 URL 路由配置中。
首先,在项目根目录下创建一个名为 `urls.py` 的新文件。然后,在该文件中添加以下代码:
```python
# mysite/urls.py
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('blog.urls')),
]
```
在上面的代码中,我们导入了 `admin` 和 `path` 函数,并使用 `urlpatterns` 变量来存储 URL 路由列表。在这个例子中,我们添加了两个 URL 路由:一个用于 Django 的默认管理后台,另一个用于我们的应用程序。
注意 `path` 函数的第一个参数是 URL 的路径,第二个参数是应该处理该 URL 的视图函数。我们使用空字符串作为路径,这意味着它将是我们应用程序的根 URL。我们还使用 `include` 函数将 `blog.urls` 模块包含在主 URL 路由配置中。
现在,我们需要在 `blog` 应用程序中创建 `urls.py` 文件,并将其包含在主 URL 路由配置中。在 `blog` 应用程序的目录中创建一个名为 `urls.py` 的新文件,并添加以下代码:
```python
# blog/urls.py
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
]
```
5. 创建Django项目
接下来我们开始创建一个Django项目。
首先,在命令行中输入以下命令来创建项目:
```
django-admin startproject myproject
```
其中,`myproject`是你的项目名称,你可以根据实际情况进行修改。
执行上述命令后,你会发现当前目录下多了一个名为`myproject`的文件夹,其中包含了一个名为`settings.py`的配置文件以及其他一些文件。
接下来,我们需要在`myproject`目录下创建一个名为`myapp`的应用程序,执行以下命令:
```
python manage.py startapp myapp
```
同样地,你可以根据实际情况进行修改。
执行完毕后,你会在`myproject`目录下看到多了一个名为`myapp`的文件夹,其中包含了一个名为`views.py`的视图文件以及其他一些文件。
6. 配置Django项目
现在,我们需要对Django项目进行一些配置。打开`myproject/settings.py`文件,将其中的`DATABASES`设置为:
```python
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'myproject',
'USER': 'root',
'PASSWORD': 'password',
'HOST': 'localhost',
'PORT': '3306',
'OPTIONS': {
'charset': 'utf8mb4',
},
},
}
```
其中,`myproject`是你要创建的数据库名称,`root`是MySQL数据库的用户名,`password`是MySQL数据库的密码,`localhost`是MySQL数据库的主机地址,`3306`是MySQL数据库的端口号。
此外,还需要在`INSTALLED_APPS`中添加`myapp`应用程序:
```python
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'myapp',
]
```
最后,在`myproject/settings.py`文件中添加以下代码:
```python
LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Shanghai'
```
这样我们就完成了Django项目的基本配置。
7. 创建视图函数
接下来,我们需要在`myapp/views.py`文件中创建一个视图函数。
```python
from django.http import HttpResponse
def hello(request):
return HttpResponse('Hello, World!')
```
这个视图函数将会返回一个字符串`Hello, World!`。
8. 创建URL映射
在Django中,URL映射的作用是将URL与视图函数进行关联。
打开`myapp/urls.py`文件,添加以下代码:
```python
from django.urls import path
from . import views
urlpatterns = [
path('hello/', views.hello),
]
```
这个URL映射将会将`http://127.0.0.1:8000/hello/`与`hello`视图函数进行关联。
9. 静态文件
在 Django 中,可以通过静态文件管理器来统一处理静态文件。静态文件包括 CSS、JavaScript、图片等等。
首先需要在项目的 settings.py 文件中设置静态文件路径:
```
STATIC_URL = '/static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, "static"),
]
```
其中 `STATIC_URL` 定义了静态文件的 URL,`STATICFILES_DIRS` 定义了静态文件的目录。
然后在模板中加载静态文件:
```html
{% load static %}
```
其中 `{% load static %}` 加载静态文件标签,`{% static 'css/style.css' %}` 指定了静态文件的路径。
最后,需要在 urls.py 文件中配置静态文件路由:
```
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
# ...
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
```
这样就可以在浏览器中访问静态文件了。
10. 部署
在开发阶段,我们可以通过运行 Django 自带的服务器进行测试,但是在生产环境中,我们需要将 Django 应用部署到服务器上。这里简要介绍一下部署的基本流程。
首先,需要将项目代码上传到服务器上。可以使用 FTP 或者 Git 等工具进行上传。
然后需要安装必要的软件,包括 Python、Django、Web 服务器等。以 Ubuntu 为例,可以通过下面的命令安装:
```
sudo apt-get update
sudo apt-get install python3-pip
sudo pip3 install Django
sudo apt-get install nginx
```
接下来需要配置 Web 服务器。这里以 Nginx 为例,配置文件如下:
```
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
```
其中 `listen` 指定了监听端口,`server_name` 指定了域名,`location` 指定了请求的 URL,将请求转发给 Django 应用。
最后需要启动 Django 应用和 Web 服务器,可以使用下面的命令:
```
python manage.py runserver 127.0.0.1:8000
sudo service nginx start
```
这样就完成了 Django 应用的部署。
以上是 Django 的基本使用方法,包括了模型、视图、模板、表单、中间件、认证、管理、静态文件、部署等等。当然,Django 还有很多高级功能和插件,需要进一步的学习和实践。