Djano 3.1学习笔记

本文档详细记录了使用Django3.1创建一个投票应用的过程,包括项目和应用的初始化、配置语言与时区、创建模型、数据迁移、视图与URL配置、模型调试等关键步骤,旨在帮助读者深入理解和掌握Django的基础操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Django 入门教程看了好几遍,始终没能入门,隔一段时间没敲代码就找不到门在哪了。。。所以写下此博客,加深学习印象,记录下知识点,以备后续复习巩固使用。如果这篇笔记也能帮到你,欢迎点赞收藏。
笔记记得比较粗略,如有不明白的欢迎提问,和我一起交流学习。
整篇文章以Djago3.1 官方文档为基础展开学习。

1 入门

跟着官方文档一起,做一个投票应用。

1.1 开始一个Django项目

1.1.1 创建Django项目

$ django-admin startproject mysite

创建的“mysite”目录结构

mysite
├── manage.py
└── mysite
    ├── asgi.py
    ├── __init__.py
    ├── settings.py
    ├── urls.py
    └── wsgi.py

进入mysite目录下尝试运行项目:

$ python manage.py runserver 

在8080端口运行:python manage.py runserver 8080
访问 http://127.0.0.1:8080 (端口根据自己配置的来)
看到以下画面说明运行成功
在这里插入图片描述

1.1.2 配置语言与时区

修改文件mysite/settings.py的对应位置

LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Shanghai'

再次运行python manage.py runserver 8080
语言修改成功!
语言修改成功!

1.2 开始一个App

1.2.1创建一个投票应用polls

$ python manage.py startapp polls

此时的目录结构

mysite
├── db.sqlite3
├── manage.py
├── mysite
│   ├── asgi.py
│   ├── __init__.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
└── polls
    ├── admin.py
    ├── apps.py
    ├── __init__.py
    ├── migrations
    │   └── __init__.py
    ├── models.py
    ├── tests.py
    └── views.py

1.2.2 Web版的 Hello world

修改视图层代码
polls/view.py

from django.shortcuts import render
from django.http import HttpResponse
# Create your views here.

def index(requests):
    return HttpResponse('Hello polls! It works!')
    

创建polls的路由
在polls的目录下创建urls.py文件
polls/urls.py

from django.urls import path
from . import views

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

修改mysit路由
编辑mysite/urls.py
新增from django.urls import include
urlpatterns中新增一条path('polls/', include('polls.urls')),

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

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

再次运行看效果
再次运行python manage.py runserver 8080
打开http://127.0.0.1:8080/polls
在这里插入图片描述

1.3 创建模型

1.3.1 migrate创建数据表

$ python manage.py migrate

1.3.2 安装应用到项目中

编辑mysite/settings.py
找到INSTALLED_APPS
添加'polls.apps.PollsConfig',

INSTALLED_APPS = [
    'polls.apps.PollsConfig',
    # ......
]

编辑polls/models.py

from django.db import models

class Question(models.Model):
	question_text = models.CharField(max_length=200)
	pub_date=models.DateTimeField('出版日期')

class Choice(models.Model):
	question=models.ForeignKey(Question,on_delete=models.CASCADE)
	choice_text=models.CharField(max_length=200)
	vote=models.IntegerField(default=0)

1.3.3 makemigrations 把数据模型生成对应的数据表

$ python manage.py makemigrations

Migrations for ‘polls’:
polls/migrations/0001_initial.py
- Create model Question
- Create model Choice

$ python manage.py migrate

1.3.4 使用Shell调试模型

$ python manage.py shell

数据的新增与修改

>>> from polls.models import Question
>>> from django.utils import timezone
>>> Question.objects.all() 	  # 查看Question下所有项目


# 新增数据
>>> q = Question(question_text='第一个问题',pub_date=timezone.now())  
>>> q.save()    # 保存数据
>>> q.id	# 查看这个问题的id
1
>>> q.question_text      # 查看q的question_text字段
>>> q.question_text = "What's up?"  # 修改字段的值
>>> q.save()


# 查询数据
## 通过ID查询
>>> Question.objects.filter(id=1)
## 通过文本开始字符查询
Question.objects.filter(question_text__startswith='What')
## 通过日期查询
Question.objects.get(pub_date__year=current_year)


# 给选项新增数据
q = Question.objects.get(pk=1)
q.choice_set.create(choice_text='The sky', votes=0)
## 查看有哪些选项
q.choice_set.all()
## 计算选项的个数
q.choice_set.count()
## 查询
Choice.objects.filter(question__pub_date__year=current_year)
## 删除
c = q.choice_set.filter(choice_text__startswith='Just hacking')
c.delete()

1.3.5 给模型添加自定义方法

判断是否是刚刚发布的

def was_published_recently(self):
    return self.pub_date >= timezone.now() - datetime.timedelta(days=1)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

会飞的果粒橙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值