Django基础知识与基本应用入门教程

yizhihongxing

下面是Django基础知识与基本应用入门教程的完整攻略:

安装Django

你可以使用以下命令来安装Django:

pip install Django

创建Django项目

使用以下命令来创建一个Django项目:

django-admin startproject myproject

其中,"myproject"是你的项目名称。

创建Django应用

在项目内部,你可以使用以下命令来创建一个Django应用:

python manage.py startapp myapp

其中,"myapp"是你的应用名称。

创建模型

在"myapp"应用内部的models.py文件中,你可以定义模型并创建数据库表。例如:

from django.db import models

class Person(models.Model):
  name = models.CharField(max_length=30)
  age = models.IntegerField()
  email = models.EmailField()

进行数据库迁移

在定义完模型后,你需要进行数据库迁移才能创建数据库表。使用以下命令来进行数据库迁移:

python manage.py makemigrations
python manage.py migrate

添加视图

在"myapp"应用内部的views.py文件中,你可以定义视图函数并进行响应信息的处理。例如:

from django.http import HttpResponse

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

创建URL映射

在"myapp"应用内部的urls.py文件中,你可以定义URL地址与视图函数之间的映射关系。例如:

from django.urls import path
from . import views

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

在项目中配置URL映射

在项目中的urls.py文件中,你可以将应用的URL映射进行统一管理。例如:

from django.contrib import admin
from django.urls import include, path

urlpatterns = [
  path('admin/', admin.site.urls),
  path('myapp/', include('myapp.urls')),
]

其中,"myapp"是你的应用名称。

运行Django项目

使用以下命令来启动Django项目:

python manage.py runserver

然后你可以在浏览器中输入"http://127.0.0.1:8000/myapp/hello/"地址来访问你刚才定义的视图函数并看到响应信息。

以上就是Django基础知识与基本应用入门教程的完整攻略。下面,我将给你两个示例说明。

示例1:创建一个简单的博客系统

首先,你需要创建一个Django项目和一个Django应用。然后,在应用中创建一个Article模型,用来存储文章数据。

from django.db import models

class Article(models.Model):
  title = models.CharField(max_length=50)
  content = models.TextField()
  created_at = models.DateTimeField(auto_now_add=True)

然后,进行数据库迁移并创建数据表。

python manage.py makemigrations
python manage.py migrate

接下来,创建一个视图函数,用来获取文章列表并展示到HTML模板中。

from django.shortcuts import render
from .models import Article

def article_list(request):
  articles = Article.objects.all()
  return render(request, 'article_list.html', {'articles': articles})

在应用的templates目录下,我们创建一个article_list.html模板文件,用来展示文章列表。

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

最后,定义URL地址与视图函数之间的映射关系,并在项目的urls.py文件中引用应用的urls.py文件。

# myapp/urls.py
from django.urls import path
from . import views

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

# myproject/urls.py
from django.contrib import admin
from django.urls import include, path

urlpatterns = [
  path('admin/', admin.site.urls),
  path('myapp/', include('myapp.urls')),
]

之后,你可以在浏览器中访问"http://127.0.0.1:8000/myapp/article_list/"地址来查看你的文章列表。

示例2:创建一个用户注册系统

首先,你需要创建一个Django项目和一个Django应用。然后,在应用中创建一个User模型,用来存储用户数据。

from django.contrib.auth.models import AbstractUser

class User(AbstractUser):
  nickname = models.CharField(max_length=50, blank=True)

然后,进行数据库迁移并创建数据表。

python manage.py makemigrations
python manage.py migrate

接下来,创建一个视图函数和两个HTML模板文件,用来分别展示用户注册表单和用户注册成功的页面。

from django.shortcuts import render, redirect
from django.contrib.auth.forms import UserCreationForm
from .models import User

def user_register(request):
  if request.method == 'POST':
    form = UserCreationForm(request.POST)
    if form.is_valid():
      form.save()
      return redirect('user_register_done')
  else:
    form = UserCreationForm()
  return render(request, 'user_register.html', {'form': form})

def user_register_done(request):
  return render(request, 'user_register_done.html')

在应用的templates目录下,我们创建两个HTML模板文件,分别为user_register.html和user_register_done.html。

<!-- user_register.html -->
<form method="post">
  {% csrf_token %}
  {{ form.as_p }}
  <input type="submit" value="Register">
</form>

<!-- user_register_done.html -->
<p>Congratulations! You have registered successfully!</p>

最后,定义URL地址与视图函数之间的映射关系,并在项目的urls.py文件中引用应用的urls.py文件。

# myapp/urls.py
from django.urls import path
from . import views

urlpatterns = [
  path('user_register/', views.user_register, name='user_register'),
  path('user_register_done/', views.user_register_done, name='user_register_done'),
]

# myproject/urls.py
from django.contrib import admin
from django.urls import include, path

urlpatterns = [
  path('admin/', admin.site.urls),
  path('myapp/', include('myapp.urls')),
]

之后,你可以在浏览器中访问"http://127.0.0.1:8000/myapp/user_register/"地址来注册新的用户。注册成功后,你将会被重定向到"http://127.0.0.1:8000/myapp/user_register_done/"地址来查看成功信息。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Django基础知识与基本应用入门教程 - Python技术站

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

相关文章

  • Django logging日志配置 Django logging配置

      批注:做开发开不开日志,以下是我在工作中写Django项目常用的logging配置。 一个日志配置文件分为几个部分: (1)  定义日志的显示格式(formatters)==>> standard(标准版)、simple(简单版)、collect(收集版) (2)定义日志的过滤规则(filters) (3)日志流的处理方式(handlers)…

    Django 2023年4月13日
    00
  • Django 外键的使用方法详解

    Django 外键的使用方法详解 在 Django 中,外键是一种非常重要的关系型字段,它可以用于表之间的关联,方便数据的操作和查询。本文将详细讲解 Django 外键的使用方法,包括什么是外键、外键的类型、外键的创建和使用,以及外键的常见问题解决。 什么是外键 外键是一种关系型字段,它用来在两个表之间建立关联。通过外键字段,我们可以将一张表中的数据和另一张…

    Django 2023年5月16日
    00
  • 表单的增 删 改 查 django单表操作 增 删 改 查

            一、实现:增、删、改、查 1、获取所有数据显示在页面上 model.Classes.object.all(),拿到数据后,渲染给前端;前端通过for循环的方式,取出数据。 目的:通过classes(班级表数据库)里面的字段拿到对应的数据。   2、添加功能 配置url分发路由增加一个add_classes.html页面 写一个def add_…

    Django 2023年4月13日
    00
  • django form关于clean及cleaned_data的说明 以及4种初始化

      1.form类的运行顺序是init,clean,validte,save其中clean和validate会在form.is_valid()方法中被先后调用。(这里留有一个疑问,结构完全相同的两个form,但是一个为先验证后clean,另一个先clean后验证。原因不明。)这里https://docs.djangoproject.com/en/dev/re…

    Django 2023年4月9日
    00
  • Django 构建模板form表单的两种方法

    下面我将详细讲解Django构建模板form表单的两种方法,并提供两个示例。 方法一:使用Django模板默认的form表单 Django模板默认提供了form表单的渲染,方便我们快速地渲染出一个表单。 使用此方法时,需要在视图函数中定义一个form变量,并为其赋值为一个forms.Form对象(也可以是子类或其他表单类)。然后在模板中,使用form.as_…

    Django 2023年5月16日
    00
  • Django 自定义存储上传文件的文件名

    一、需求: Django实现自定义文件名存储文件 使文件名看起来统一 避免收到中文文件导致传输、存储等问题 相同的文件也需要使用不同的文件名 二、实现思路: 思路: 生成14位随机字母加数字、后10位采用时间戳。从而实现相同文件不同文件名 1.view版: 在view接收到文件名之后进行重命名,不修改Django默认的文件存储逻辑。从而实现需求 2.uplo…

    Django 2023年4月11日
    00
  • django之cookie、session和ajax

       cookie是什么?          保存在客户端浏览器上的键值对   {k:v}          cookie依附在请求头或响应头中出现          发送请求时,会自动携带自己网站的cookie    应用:          实现登录          投票 1.1 获取Cookie request.COOKIES[‘key’] requ…

    Django 2023年4月13日
    00
  • django 信号调度机制详解

    Django 信号调度机制详解 Django提供了信号调度机制,可以在模型的生命周期中插入自定义的代码。本文将详细讲解Django信号调度机制的原理和用法,并提供两个示例。 什么是信号调度机制 信号调度机制是一种设计模式,广泛应用于操作系统、GUI编程、网络编程等领域。在Django中,信号调度机制主要用于模型的生命周期中,实现自定义的操作。 Django中…

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