Django--3 Django项目基本流程走通

                                                                                             Django项目基本流程走通

  1. 创建Django项目

2. 创建数据库

配置MySQL数据库,python3.X安装的是PyMySQL,Python3 使用 PyMySQL 连接数据库,并实现简单的增删改查

安装PyMySQL : pip install PyMySQL

import pymysql

pymysql.install_as_MySQLdb()

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'sunck',
        'USER': 'root',
        'PASSWORD': '1212',
        'HOST': 'localhost',
        'PORT': '3306',
    }
}

3. 创建应用

终端下python manage.py startapp myApp

pymysql.version_info = (1, 4, 13, "final", 0)

4. 激活应用

就是将应用配置到项目中

5 定义模型

5.1 概述

有一个数据表,就对应有一个模型

在models.py中定义,要引入models,因为模型类要继承models.Model类

class Grades(models.Model):

    gname = models.CharField(max_length=20)

    gdate = models.DateField()

    ggirlnum = models.IntegerField()

    gboynum = models.IntegerField()

    isDelete = models.BooleanField(default=False)

 

class Students(models.Model):

    sname = models.CharField(max_length=20)

    sgender = models.BooleanField(default=True)

    sage = models.IntegerField()

    scontend = models.CharField(max_length=20)

    isDelete = models.BooleanField(default=False)

    sgrade = models.ForeignKey("Grades")

5.2 在数据库中生成数据表

(1)生成迁移文件

python manage.py makemigrations,在migrations目录生成迁移文件,此时数据库中还没有生成数据表

(2)执行迁移

python manage.py migrate 相当于执行了sql语句创建数据表

5.3 测试

(1)查询所有数据

类名.object.all()

(2)添加数据

grade = Grades()

grade.gname = “python04”;

grade.gdate = datetime(year=2020,month=7,day=15)

grade.save()

(3)删除数据

grade.delete()

(4)关联对象

获得关联对象的集合,对象名.关联的类名小写_set.all()  例如:获取python04班级的所有学生,grade.students_set.all()

需求:创建刘宁,属于python04班级

stu = grade.students_set.create(sname = u’刘宁’, sage = 30)

 

5.4 启动服务器

python manage.py runserver ip:port

这是一个纯python写的轻量级服务器,仅测试时使用

5.5 站点管理

5.5.1 概述

内容发布 :负责添加、修改、删除内容

公告访问

5.5.2 配置Admin应用

在settings.py文件中的INSTALLED_APPS添加'django.contrib.admin',默认已添加好的

5.5.3 创建管理员用户

python manage.py createsuperuser

http://127.0.0.1:8000/admin/ 进入

汉化

5.5.4 管理数据表

(1)修改admin.py文件

(2)自定义管理界面

from django.contrib import admin

# Register your models here.

from .models import Grades,Students

class GradesAdmin(admin.ModelAdmin):

    list_display = ['pk','gname','gdate','ggirlnum','gboynum','isDelete']

admin.site.register(Grades,GradesAdmin)

admin.site.register(Students)

5.5.5 站点界面管理

from django.contrib import admin

 

# Register your models here.

from .models import Grades,Students

 

class StudentsInfo(admin.TabularInline):

    model = Students

    extra = 2

 

class GradesAdmin(admin.ModelAdmin):

    inlines = [StudentsInfo]

    # 列表页属性

    list_display = ['pk','gname','gdate','ggirlnum','gboynum','isDelete']

    list_filter = ['gname']

    search_fields = ['gname']

    list_per_page = 5

    # 添加、修改页属性

    # fields = ['ggirlnum','gboynum','isDelete','gname','gdate']

    fieldsets = [

        ("num",{"fields":['ggirlnum','gboynum']}),

        ("base", {"fields": ['gname','gdate','isDelete']}),

    ]

admin.site.register(Grades,GradesAdmin)

class StudentsAdmin(admin.ModelAdmin):

    def gender(self):

        if self.sgender:

            return "男"

        else:

            return "女"

    gender.short_description = "性别"

    list_display = ['pk', 'sname', 'sage', 'sgender', 'scontend', gender,'isDelete']

    list_per_page = 5

admin.site.register(Students,StudentsAdmin)

6. 视图的基本使用

6.1 概述

视图对web 请求进行回应,视图就是一个python函数,在views.py文件中定义

6.2 定义视图

from django.http import HttpResponse

def grades(request):

    # 去模板里取数据

    gradesList = Grades.objects.all()

    # 将数据传递给模板,模板渲染页面,将渲染好的页面返回浏览器

    return render(request, 'myApp/grades.html', {"grades": gradesList})

    # return HttpResponse("LN is a good man")

6.3 配置url

(1)修改project目录下的urls.py文件

from django.contrib import admin

from django.urls import path,include

 

urlpatterns = [

    path('admin/', admin.site.urls),

    path('', include('myApp.urls')),

]

(2)在myApp目录创建1个urls.py文件

from django.conf.urls import url

from django.urls import path

from . import views

urlpatterns = [

    path('', views.index),

    path('grades/', views.grades),

]

7 模板的基本使用

模板是HTML页面,可以根据视图中传递过来的数据进行填充

7.1 创建模板目录

7.2 配置模板路径

修改settings.py文件

7.3 定义模板

定义模板grades.html

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <title>班级信息</title>

</head>

<body>

    <h1>班级信息列表</h1>

    <ul>

        {% for grade in grades %}

        <li>

            <a href="#">{{ grade.gname }}</a>

        </li>

        {% endfor %}

    </ul>

</body>

</html>

 

定义好模板,视图去模板里取数据,将数据传递给模板,模板渲染页面,将渲染好的页面返回浏览器。

运行得到如下界面:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

liuning2008

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

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

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

打赏作者

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

抵扣说明:

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

余额充值