Django的基本操作流程总结

Django

MTV框架和MVC框架本质上没有什么差别。

概述:用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件中,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。被独特的发展起来用于映射传统的输入,处理和输出功能在一个逻辑的图形化用户界面的结构中。

核心思想:解耦,降低各功能模块之间的耦合性,方便变更,更容易重构代码,最大程度上的实现代码的重用。

MVC:Model(模型) 负责业务对象与数据库的对象(ORM)

​ View(视图) 负责业务逻辑,并在适当的时候调用Model和Template

​ Template(模板) 负责如何把页面展示给用户

注意:Django还有一个url(路由)分发器,它的作用是将一个个URL的页面请求分发给不同的view处理,view再调用相应的Model和Template

流程:用户用控制器在页面输入访问url->根据url匹配相应的视图(view)函数->视图(view)去模型(model)里取数据->模型(model)去数据库中取数据,将数据返回给视图(view)->视图(view)把要显示的数据返回给模板(template)->模板(template)就是html文件,并返回给用户。

基本流程操作

1.设计表结构

2.配置数据库:对databases进行配置(记得要打开数据库)

​ 注意:Django中默认使用的是SQLite数据库,python3装的是PyMysql

​ 1.在init.py 中增加如下代码

​ import pymysql​ pymysql.install_as_MySQLdb()

​ 2.修改database

 
 
 
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': '数据库名称',
        'USER': '用户名',
        'PASSWORD': '密码',
        'HOST': '数据库服务器ip,本地可以使用localhost',
        'PORT': '端口',
    }
}

3.创建应用:一个工程中可以创建一到多个应用,每个应用进行一种业务处理

在cmd终端进入创建的工程目录下:输入 <python manage.py startapp myApp>

4.激活应用:在setting.py文件中,将myApp应用加入到

 
 
 
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'myApp',
]

5.定义模型

概述:有一个数据表,就有一个模型与之对应

在项目目录下的models.py中定义模型

 
 
 
from django.db import models
# Create your models here.
class Grades(models.Model):
    gname = models.CharField(max_length=10)
    gdate = models.DateTimeField()
    gboynum  = models.IntegerField()
    ggirlnum = models.IntegerField()
    isDelete = models.BooleanField()
class Students(models.Model):
    sname = models.CharField(max_length=20)
    sage  = models.IntegerField()
    sgender = models.BooleanField()
    scontend = models.CharField(max_length=40)
    isDelete = models.BooleanField()
    sgrade = models.ForeignKey("Grades")

6.生产数据表

​ 1.生成迁移文件 :python manage.py makemigrations

​ 2.执行迁移:python manage.py migrate

7.测试数据操作

​ 1.进入python shell :python manage.py shell

​ 2.引入包:python manage.py makemigratons

​ 3.查询:Grades.objects.all() 查看班级表中的所有数据

​ 4.创建数据,,,查看某个对象 ,,,修改数据,,,,删除数据,,,,(g.delete)

8.启动服务器 :格式python manage.py runserver ip:port

​ 默认端口为8000,可以修改。python manage.py runserver 8080

Admin站点管理

概述: 负责添加、修改、删除内容,开发这些重复的功能是一件单调乏味,缺乏创造力的工作。为此,Django提供自动生成模块

1.配置Admin:在setting.py文件中的INSTALLED_APPS添加'django.contrib.admin'

​ 注意:默认已经配置,后面可以使用xadmin进行站点管理,和admin使用和思想基本一致。更多定制。

2.创建管理用户 :python manage.py createsuperuser

​ 依次输入用户名,邮箱,密码

3.配置管理的数据表:将要管理的表添加到项目目录下的admin.py文件中注册

 
 
 
from django.contrib import admin
from .models import Grades, Students
# Register your models here.
admin.site.register(Grades)
admin.site.register(Students)

4.自定义管理界面:

​ 1.ModelAdmin类是模型在Admin界面中的表现形式,通过ModelAdmin的子类,来定义模型在Admin界面的显示方式

 
 
 
class GradesAdmin(admin.ModelAdmin):
    #列表项属性
    list_display = ["pk", "gname", "gdate", "gboynum", "ggirlnum", "isDelete"]
    list_filter = ["gname"]
    search_fields =  ["gname"]
    # 添加、修改属性界面
    # fields = ["gdate", "gname"]
    fieldsets = [
        ("base",{"fields":["gdate","gname"]}),
        ("more", {"fields": ["gboynum", "ggirlnum","isDelete"]}),
    ]
    # 分页
    list_per_page = 3
admin.site.register(Grades, GradesAdmin)

​ 2.属性说明:

​ 列表页属性

​ 添加、修改页的属性

视图的基本使用

1.概述:在Django中,视图对应web请求进行回应,视图接收request对象作为第一个参数,包含了请求的信息,视图就是一个python函数,绑定在views.py中

2.定义视图

 
 
 
from django.http import HttpResponse
def index(request):
    return HttpResponse("sunck is a good man")

3.修改project目录下的urls.py文件

 
 
 
from django.conf.urls import url, include
from django.contrib import admin
urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^', include('myApp.urls'))
]
  1. 在myApp目录下创建名为urls.py的文件

     
       
       
    from django.conf.urls import url, include
    from django.contrib import admin
    from . import views
    urlpatterns = [
    #     路由分发
        url(r'^index/$', views.index),
        url(r'^detail/$', views.detail),
    ]

模板的基本使用

1.概述:模板是html页面,可以根据视图中传递的数据而渲染

2.创建模板:在工程目录下创建的templates目录,用来存放模板

注意:templates目录也可以放到项目目录中

3.配置setting.py文件中的TEMPLATES

 
 
 
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, "templates")],

4.定义模板

5.在view中使用模板:1.定义路由 2.匹配路由 url(r'^students/$', views.students)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值