一篇文章带你自学python Django

一篇文章带你自学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-redis 使用规范

    django-redis 基于 BSD 许可, 是一个使 Django 支持 Redis cache/session 后端的全功能组件. 1,安装 django-redis 最简单的方法就是用 pip : pip install django-redis   2,作为 cache backend 使用配置: 为了使用 django-redis , 你应该将你…

    2023年4月10日
    00
  • python基础-requests模块、异常处理、Django部署、内置函数、网络编程

     网络编程   urllib的request模块可以非常方便地抓取URL内容,也就是发送一个GET请求到指定的页面,然后返回HTTP的响应。   校验返回值,进行接口测试: 编码:把一个Python对象编码转换成Json字符串   json.dumps() 解码:把Json格式字符串解码转换成Python对象   json.loads()     Post请…

    Django 2023年4月12日
    00
  • django 简单实现登录验证给你

    下面是我针对“django 简单实现登录验证”的攻略,分两个示例逐步说明如下。 示例一 首先,在基于 Django 创建的网站的项目文件夹下,创建一个新的应用(App)。在终端里输入以下命令: bash python manage.py startapp accounts 这将在你的项目文件夹下创建一个名为 accounts 的应用。 在 accounts …

    Django 2023年5月15日
    00
  • 学习Django知识点分享

    学习Django知识点分享的完整攻略可以分为以下几个步骤: 步骤一:了解Django的基本概念 了解Django是什么以及它的基本概念是入门Django的第一步。你可以看Django官方文档1中的“概述”、“快速概览”和“第一部分:入门Django”这几节,或者去网上查找一些Django的相关介绍的博客和教程。 步骤二:安装Django并创建项目 在学习Dj…

    Django 2023年5月16日
    00
  • Django进阶(一)

    Url进阶 mysit/mysit/urls.py from django.conf.urls import url from django.contrib import admin urlpatterns = [ url(r’^admin/’, admin.site.urls), ] # urlpatterns=[ # url(正则表达式,视图函数,参数,…

    Django 2023年4月11日
    00
  • Django 序列化三种方式 对象 列表 元组

    1.xuliehua.html <html lang=”en”> <head> <meta charset=”UTF-8″> <title>Title</title> </head> <body> <h1>用户列表</h1> <table id=…

    Django 2023年4月9日
    00
  • django+Python数据库利用Echarts实现网页动态数据显示

    这几天一直在思考前端——服务器——数据库的之间的数据交互,最后决定了用django来做,为什么呢?因为我这只是在开发阶段,所以就用了django自带的web服务器(很方便)而且呢,它还自带了数据库sqllite3(好吧,本来要用mysql 的,但是平台测试接入尾声,docker都停掉了,而mysql在docker里面)这个数据库和mysql操作的django…

    2023年4月10日
    00
  • Django框架(十九)–Django rest_framework-认证组件

    一、什么是认证 只有认证通过的用户才能访问指定的url地址,比如:查询课程信息,需要登录之后才能查看,没有登录,就不能查看,这时候需要用到认证组件 二、利用token记录认证过的用户 1、什么是token token是服务端生成的一串字符串,以作客户端进行请求的一个令牌,当第一次登录后,服务器生成一个Token便将此Token返回给客户端,以后客户端只需带上…

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