django

django

基本认识

数据迁移

映射到数据库

1
2
python manage.py makemigrations
python manage.py migrate

创建APP

1
python manage.py startapp app_name

基本视图

返回响应的response

1
2
def test_func(request):
return HttpResponse('test')

渲染一个html

1
2
def user_add(request):
return render(request, "user_add.html")

整体的框架

image-20230923191111893

路由

子路由的写法

一般只需要一个子路由,这里我们使用app : user

首先需要在app里面创建urls.py文件,然后像主文件里面的urls一样添加路径就很好了

1
2
3
4
5
6
7
8
9
10
11
12
from django.urls import path 

import user.views
# from user import views
from user.views import *

# 子路由

urlpatterns = [
path('user_test/', user_test),
]

然后主文件的urls.py如下图

1
2
3
4
5
6
7
8
9
10
11
from django.contrib import admin
from django.urls import path,include
from user.views import *
from app01 import views

urlpatterns = [
path('user/', include('user.urls')),# 配置子路由的路径
path('user/index', views.index),
path('user/add', views.user_add),
path('user/list', views.user_list),
]

创建模板

在model.py里添加以下的数据

创建模板的时候记得一定要继承models.Model
创建一个类,相当于表的结构

对象相当于一行数据

类的属性就是对应的字段

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
from django.db import models


# Create your models here.
class UserModel(models.Model):
name = models.CharField(10,unique=True)
sex = models.CharField(10)
age = models.IntegerField(default=18)
is_delete = models.BooleanField(default=False)



# 相当于创建了一个用户表
# 姓名 varchar
# 性别 varchar
# 年龄 age
# 是否删除 bool

模型改变就需要再次数据迁移

上面执行完的结果就是
image-20230923213424682

后台的管理页面

  1. 注册需要管理的模型

    需要在admin.py里使用下面的代码

    1
    2
    3
    4
    5
    6
    from django.contrib import admin
    from user.models import *
    # Register your models here.

    admin.register(UserModel)

  2. 创建超级管理员用户

    使用下面的指令就行了

    1
    python manage.py createsuperuser
  3. 添加admin的访问路径

    1
    path('admin/', admin.site.urls)	
  4. 访问 后台管理系统

    1
    http://127.0.0.1:8000/admin/

路由

使用include使用子路由

重定向

  1. 使用超链接的方向是

    1
    2
    {# url转发测试 #}
    <a href="/user/list">路由转发测试,点击进入用户下·列表</a>

    主路由的urls随摆配置

  2. 使用反向解释的方式

    1
    2
    3
    {# 反向解析 #}
    {# list 是path name的值 #}
    <a href="{% url 'list' %}">反向解析测试,点击进入用户下列表</a>

    注意:这么写的话,主路由不能存在命名空间

    1
    2
    path('user/', include('user.urls'))  # 使用子路由

    子路由指定路由的名称

    1
    path('list/', user_list, name='list'),
  3. 使用命令空间的方式

    1
    2
    {# 命名空间反向解析 #}
    <a href="{% url 'user:list' %}">反向解析测试,点击进入用户下列表</a>

    主路由一定存在namespace

    1
    path('user/', include(('user.urls', 'user'), namespace='user'))  # 使用命名空间
  4. 使用重定向

    关键字传参

    1
    2
    def test_redirect(request):
    return redirect(reverse('user:details', kwargs={'uid': 2}))

    占位传参

    1
    2
    def test_redirect(request):
    return redirect(reverse('user:details', args=(2,)))

    直接解析网址

    1
    2
    def test_redirect(request):
    return redirect("https://www.baidu.com")

模型基础

这个可以理解是数据库的结构


django
https://tsy244.github.io/2023/09/22/python/django/
Author
August Rosenberg
Posted on
September 22, 2023
Licensed under