Django-MVT以及Django基础

时间:2020-04-13 13:02:00   收藏:0   阅读:66

一.框架

框架是应对某类软件设计问题而产生的,它是由各个软件模块组成的,每个模块都有特定的功能,模块与模块之间通过相互配合来完成软件的开发。

二. MVC 框架

MVC简介

Web MVC框架模块功能

三.Django框架

3.1Django简介

Django ,遵循MVC思想,但是有自己的一个名词,叫做MVT。

3.2Django中的MVT

3.3Django安装

pip install django
// 指定版本 安装
pip install django==2.2.2

3.4第一个Django项目

django-admin startproject mysite
.
├── manage.py // django项目的管理文件
└── mysite
    ├── __init__.py     //__init__.py: 说明是一个python包。
    ├── settings.py  //配置文件
    ├── urls.py  //url路由配置
    └── wsgi.py // web服务器和Django交互的接口
cd mysite //进入django项目中
python manage.py startapp testapp // testapp 为App的名字
// 也可以使用
django-admin startapp testapp 

3.5配置文件 settings

INSTALLED_APPS = [
    ‘django.contrib.admin‘,
    ‘django.contrib.auth‘,
    ‘django.contrib.contenttypes‘,
    ‘django.contrib.sessions‘,
    ‘django.contrib.messages‘,
    ‘django.contrib.staticfiles‘,
#  ‘testapp‘,   早期版本使用
     ‘testapp.apps.TestappConfig‘,   # 2.0以上版本使用 
]
LANGUAGE_CODE = ‘zh-hans‘

TIME_ZONE = ‘Asia/Shanghai‘
TEMPLATES = [
    {
        ‘BACKEND‘: ‘django.template.backends.django.DjangoTemplates‘,
        ‘DIRS‘: [os.path.join(BASE_DIR, ‘templates‘)],
        ‘APP_DIRS‘: True,
        ‘OPTIONS‘: {
            ‘context_processors‘: [
                ‘django.template.context_processors.debug‘,
                ‘django.template.context_processors.request‘,
                ‘django.contrib.auth.context_processors.auth‘,
                ‘django.contrib.messages.context_processors.messages‘,
            ],
        },
    },
]
STATICFILES_DIRS = (
    os.path.join(BASE_DIR, ‘static‘),
)
DATABASES = {
    ‘default‘: {
        ‘ENGINE‘: ‘django.db.backends.sqlite3‘,
        ‘NAME‘: os.path.join(BASE_DIR, ‘db.sqlite3‘),
    }
}

3.6 视图

在Django中,通过浏览器去请求一个页面时,使用视图函数来处理这个请求的,视图函数处理之后,要给浏览器返回页面内容。

视图函数

"""
视图函数必须有一个参数request,进行处理之后,需要返回一个HttpResponse的类对象。
hello world就是返回给浏览器显示的内容。
"""
def index(request):  // request参数必须
	return HttpResponse(‘hello world‘)

3.7 url路由

url配置的目的是让建立url和视图函数的对应关系。url配置项定义在urlpatterns的列表中,每一个配置项都调用url函数。
url函数有两个参数,第一个参数是一个正则表达式,第二个是对应的处理动作。

1.X版本配置url时,有两种语法格式:
a) url(正则表达式,视图函数名)
b) url(正则表达式,include(应用中的urls文件))

from django.conf.urls import url
from django.contrib import admin
from testapp import views

urlpatterns = [
    url(r‘^admin/‘, admin.site.urls),
    url(r‘^index/‘, views.index),
 
]

2.x版本使用path更方便

from django.contrib import admin
from django.urls import path
from testapp import views

urlpatterns = [
    path(‘admin/‘, admin.site.urls),
    path(‘index‘, views.index, name="index" ),
]

正式开发中,在配置url时,首先在项目的urls.py文件中添加配置项时,并不写具体的url和视图函数之间的对应关系,而是包含具体应用的urls.py文件,在应用的urls.py文件中写url和视图函数的对应关系。

以2.2.2版本演示 项目urls

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

urlpatterns = [
    path(‘admin/‘, admin.site.urls),
    path(‘‘, include(‘testapp.urls‘) ),
]

app中urls

from django.urls import path
from testapp import views

urlpatterns = [
    path("index", iviews.index, name=‘index‘ ),
]

url和view配置过程

技术分享图片- 1)在项目的urls文件中包含具体应用的urls文件,在具体应用的urls文件中包含具体url和视图的对应关系。

3.8 Model

django中内嵌了ORM框架,ORM框架可以将类和数据表进行对应起来,只需要通过类和对象就可以对数据表进行操作。
在Django中主要是设计类:模型类。
ORM另外一个作用:根据设计的类生成数据库中的表。

在应用models.py中设计模型类。

示例

class UserInfo(models.Model):
    username = models.CharField(max_length=24)
    age = models.IntegerField()
    gender = models.BooleanField()
    email = models.EmailField()

生成迁移文件

python manage.py makemigrations

执行迁移文件生成数据表

python mange.py migrate
//生成表名的默认格式:应用名_模型类名小写

基础操作

第一种方式

 user1 = model.UserInfo()  # 创建一个对象
 user1.username = ‘张三‘
 user1.age = 18
 user1.gender = False
 user1.email = ‘zhangsan@test.com‘
 user.save() //执行save后,会保存数据到数据表中

第二种方式

user1 = models.UserInfo.objects.create(username=‘张三‘, age=18, gender=False,
					 email=‘zhangsan@test.com‘)
user1 = models.UserInfo.get(id=1)
user1 = models.UserInfo.get(id=1)
user1.email = ‘zhangsan@abc.com‘
user1.save()
user1 = models.UserInfo.get(id=1)
user1.delete()
models.UserInfo.objects.all()

原文:https://www.cnblogs.com/luckyleaf/p/12690472.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!