一篇文章带你自学python Django

yizhihongxing

一篇文章带你自学Python Django

Django 简介

Python Django 是一种基于 Python 的 Web 框架,它使用了设计模式中的 MVC 架构,采用了 DRY(Don't Repeat Yourself)的编码风格,可以快速构建出优雅的、可扩展的网站,被广泛运用于互联网开发领域。

准备工作

在学习 Django 之前,需要掌握以下基础知识:

  • Python 的基础语法
  • HTML、CSS 和 JavaScript 的基础知识
  • 数据库的基本概念和 SQL 语句的使用

如果你没有相关的基础知识,可以先学习一下这些课程:

安装 Django

在掌握了基础知识之后,我们可以开始安装 Django。

首先,我们需要安装 Python。可以到 Python 官网 上下载最新版本的 Python,然后按照提示进行安装。

安装好 Python 之后,我们可以使用 pip 工具来安装 Django。打开命令行工具,输入以下命令:

pip install Django

等待安装完成后,输入以下命令来确认 Django 是否安装成功:

python -m django --version

如果输出了当前安装的 Django 版本号,说明安装成功。

创建 Django 项目

安装好 Django 之后,我们可以开始创建自己的 Django 项目了。打开命令行工具,执行以下命令:

django-admin startproject mysite

这个命令会在当前目录下创建一个名为 mysite 的 Django 项目。在 mysite 目录下,可以看到以下文件和目录:

mysite/
    manage.py
    mysite/
        __init__.py
        settings.py
        urls.py
        asgi.py
        wsgi.py

其中,manage.py 是一个命令行工具,可以让我们轻松管理 Django 项目的各项操作,比如创建一个应用,启动服务器等操作。

mysite/settings.py 是 Django 项目的配置文件,其中包含了数据库的设置、静态文件的设置等。

mysite/urls.py 则是项目的 URL 配置文件,规定了不同 URL 的路径和视图函数的对应关系。

创建 Django 应用

创建完 Django 项目之后,我们需要创建一个或多个应用。在 Django 中,应用(App)是指一个具有独立功能的模块,比如博客、图片库等。

我们可以使用以下命令来创建一个名为 blog 的应用:

python manage.py startapp blog

执行完这个命令之后,我们就可以在 mysite 目录下看到一个名为 blog 的目录,其中包含了应用的各项设置。我们需要在这个目录下编写代码,来实现应用的功能。

编写 Django 视图

在 Django 中,视图(View)是处理用户请求并生成响应的函数。在视图函数中,我们可以从数据库中读取数据,渲染模板,最终将结果呈现给用户。

下面是一个简单的视图函数的代码示例,它会返回一个 HTML 页面:

from django.http import HttpResponse

def index(request):
    return HttpResponse("Hello, world!")

这个视图函数接受一个 request 参数,表示用户请求的信息。视图函数必须返回一个 HttpResponse 对象,表示返回给用户的内容。

我们需要将这个视图函数添加到 blog/views.py 文件中,然后配置 URL 才能使用。假设我们希望将这个视图函数关联到 URL /blog/ 上,可以在 blog/urls.py 文件中添加以下代码:

from django.urls import path
from . import views

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

上面的代码首先导入了 pathviews 模块,然后使用 path 函数将 URL /blog/ 和视图函数 index 进行关联。其中,name 参数是关联 URL 的名称,可以用来在模板中生成 URL。

最后,我们需要修改 mysite/urls.py 文件,将 /blog/ 路径和 blog 应用进行关联。可以使用以下代码来实现:

from django.urls import include, path

urlpatterns = [
    path('blog/', include('blog.urls')),
]

在以上代码中,include 函数表示将包含 blog 应用的 URL 包含在 Django 项目的全局 URL 中。

运行 Django 服务器

编写完 Django 代码之后,我们需要启动服务器来运行项目。可以使用以下命令启动服务器:

python manage.py runserver

运行成功后,就可以在浏览器中访问 http://localhost:8000/blog/ 地址,看到我们刚刚编写的视图函数返回的内容了。

示例说明1

假设我们希望将一张图片上传到服务器,并在网页上显示出来,需要进行以下步骤:

  1. blog/models.py 文件中,定义一个名为 Image 的模型,并添加 image 属性表示图片文件:

```python
from django.db import models

class Image(models.Model):
image = models.ImageField(upload_to='images/')
```

  1. blog/forms.py 文件中,定义一个名为 ImageForm 的表单类:

```python
from django import forms
from .models import Image

class ImageForm(forms.ModelForm):
class Meta:
model = Image
fields = ['image']
```

  1. blog/views.py 文件中,创建一个名为 upload_image 的视图函数,用于处理图片上传请求:

```python
from django.shortcuts import render, redirect
from .forms import ImageForm

def upload_image(request):
if request.method == 'POST':
form = ImageForm(request.POST, request.FILES)
if form.is_valid():
form.save()
return redirect('index')
else:
form = ImageForm()
return render(request, 'upload_image.html', {'form': form})
```

  1. blog/templates/ 目录下,新建一个名为 upload_image.html 的模板文件,用于渲染上传页面:

```html

{% csrf_token %}
{{ form.as_p }}

```

  1. blog/urls.py 中新增一个 URL,用于将 /blog/upload_image/ 路径关联到 upload_image 视图函数:

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

  1. 最后,在 index.html 中添加一个上传链接,用于跳转到上传页面:

html
<a href="{% url 'upload_image' %}">上传图片</a>

示例说明2

假设我们需要在博客主页上展示最新发布的 10 篇文章,需要进行以下步骤:

  1. blog/models.py 文件中,定义一个名为 Article 的模型,表示文章:

```python
from django.db import models

class Article(models.Model):
title = models.CharField(max_length=100)
content = models.TextField()
pub_date = models.DateTimeField(auto_now_add=True)
```

  1. blog/views.py 文件中,创建一个名为 index 的视图函数,用于处理博客主页的请求:

```python
from django.shortcuts import render
from .models import Article

def index(request):
articles = Article.objects.order_by('-pub_date')[:10]
return render(request, 'index.html', {'articles': articles})
```

  1. blog/templates/ 目录下,新建一个名为 article_list.html 的模板文件,用于展示文章列表:

html
{% for article in articles %}
<h2>{{ article.title }}</h2>
<p>{{ article.content }}</p>
{% endfor %}

  1. blog/templates/ 目录下,修改 index.html 模板文件,用于渲染博客主页:

```html
{% extends 'base.html' %}

{% block content %}

Welcome to my blog!

{% include 'article_list.html' with articles=articles %}
{% endblock %}
```

  1. 最后,在 mysite/settings.py 文件中,修改 TEMPLATES 中的 DIRS 配置,使 Django 能够找到模板文件:

python
'DIRS': [BASE_DIR / 'templates'],

总结

本文介绍了如何使用 Django 构建 Web 应用程序,包括安装 Django、创建 Django 项目、创建 Django 应用、编写 Django 视图、运行 Django 服务器等。

通过以上示例说明,我们进一步了解了如何在 Django 中实现图片上传和文章展示等功能。希望本文能对您学习 Django 有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:一篇文章带你自学python Django - Python技术站

(0)
上一篇 2023年5月16日
下一篇 2023年5月16日

相关文章

  • Django如何批量创建Model

    首先,我们需要明确批量创建Model的场景。一般情况下,需要批量创建Model的场景比较罕见,因为Model用于描述一个数据表,每个表都有自己独立的结构和字段,不同的表之间极少会存在字段完全一致的情况。不过,在某些特殊情况下,可能需要针对一种特定的数据格式,创建多个具有相似结构的表,这时批量创建Model就派上用场了。 假设我们有一个需求,需要创建10个具有…

    Django 2023年5月16日
    00
  • 使用Nginx+uWSGI+Django方法部署Django程序

      第一步先解决uwsgi与django的桥接。解决在没有nginx的情况下,如何使用uwsgi+DJANGO来实现一个简单的WEB服务器。 第二步解决uwsgi与Nginx的桥接。通过nginx与uwsgi的桥接,打通nginx与django的连通,从而比较完美的实现django的部署。 本文将分成五步来详细阐述uwsgi+django的部署方式。ngin…

    Django 2023年4月12日
    00
  • Django实现分页显示效果

    下面我将详细讲解如何使用Django实现分页显示效果,包含两个例子。 环境与工具 Python 3.x Django 3.x 安装分页插件 Django自带分页,但是功能相对简单,对于一些高级功能可能不够用,这时我们可以使用第三方分页插件:django-pagination,使用pip安装即可: pip install django-pagination 分…

    Django 2023年5月16日
    00
  • django 中多条件搜索

    Django中我们一般用orm进行数据的交互操作,单条件搜索比较方便,那多条件呢? 百度了一下,大部分都是如下图的解释(咱也不知道谁抄袭谁的,太可怕了),对我一点用也没有   吐槽完上面的,我们看看下面的代码(models就不晒了,直接上views),多条件查询一行代码就能搞定,我之前还在自己写if,else进行判断取值 @login_required de…

    2023年4月10日
    00
  • django-restframework

    一、安装与使用 1.安装 >: pip3 install djangorestframework 2.使用 在settings.py中注册: INSTALLED_APPS = [ …. ‘api.apps.ApiConfig’, # drf必须注册 ‘rest_framework’, ] 模块 # drf的封装风格 from rest_framew…

    Django 2023年4月13日
    00
  • Django给admin添加Action的步骤详解

    下面是”Django给admin添加Action的步骤详解”的完整攻略: 1. 创建actions.py文件 在你的Django应用下创建一个名为actions.py的文件。在该文件中,你可以定义你想要添加到admin actions选项中的自定义函数。 下面是一个示例,在actions.py中添加一个名称为make_published的函数: def ma…

    Django 2023年5月16日
    00
  • django crm 左侧菜单栏

      在app中创建一个service文件夹,将 权限认证中间件, 和 将权限注入session的函数写入该文件夹 控制左侧菜单栏显示项: 给permission表加一项 , is_menu, 值为True表示要在左侧菜单栏中显示,值为False表示不需要在左侧菜单栏中显示 将权限向session中注入的时候,注入两个列表 permission_list 列表…

    Django 2023年4月12日
    00
  • Vue+Django项目部署详解

    我来为您详细讲解“Vue+Django项目部署详解”的完整攻略。 1. 环境准备 在进行Vue+Django项目部署之前,我们需要准备好以下环境: 一台Linux服务器,最好是Ubuntu系统 安装Docker和Docker Compose 安装Nginx和Supervisor 如果您还没有安装上述环境,可以参考以下博客进行安装: Docker和Docker…

    Django 2023年5月16日
    00
合作推广
合作推广
分享本页
返回顶部