【python学习-Django】初步了解Django

  • Post author:
  • Post category:python

创建Django项目

  • step1: 安装虚拟环境包
pip install virtualenv
  • step2: 在指定文件下创建一个虚拟环境
virtualenv --no-site-packages mysite

在这里插入图片描述

  • step3: 进入Scripts,激活虚拟环境,输入activate,进入虚拟环境
  • deactivate退出虚拟环境
    在这里插入图片描述
  • step4:安装django包
pip install django
  • step5: django-admin startproject 项目名称创建一个Django项目
django-admin startproject mytestsite

在这里插入图片描述

  • step5: 运行Django项目
python manage.py runserver

在这里插入图片描述

  • step6: 创建应用
python manage.py startapp autotest

在这里插入图片描述

settings.py配置

  • 注:编辑settings.py前,先设置TIME_ZONE为自己时区
TIME_ZONE = 'Asia/Shanghai'
USE_TZ = True
  • 设置中文
LANGUAGE_CODE = 'zh-hans'

数据库配置

Django项目默认数据库是db.sqlite3,如果需要修改默认数据库,则需要在project/settings.py中修改默认配置。
注:评估自己的项目要求,安装好对应数据库后,配置数据库的远程连接后,在settings.py中配置
  • 默认配置
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': BASE_DIR / 'db.sqlite3',
    }
}

  • 修改为mysql数据库
    • ENGINE: ‘django.db.backends.sqlite3’,‘django.db.backends.postgresql’,‘django.db.backends.mysql’,或 ‘django.db.backends.oracle’
    • NAME:需要连接的数据库名称
    • 非sqlite数据库时:指定USER(连接账户)、PASSWORD(连接账户密码)、HOST(数据库IP地址)、PORT(连接端口号)
      settings.py的数据库配置修改

INSTALLED_APPS设置项

包含项目中启用的所有Django应用,能够在多个项目中使用,也可以导报并发布应用

  • 默认自带应用
INSTALLED_APPS = [
    'django.contrib.admin', # 管理员站点
    'django.contrib.auth', # 认证授权系统
    'django.contrib.contenttypes', #内容类型框架
    'django.contrib.sessions', #会话框架
    'django.contrib.messages',  #消息框架
    'django.contrib.staticfiles',  #管理静态文件的框架
]
  • 将应用加入INSTALLED_APPS进行使用
    在这里插入图片描述

模型设计

什么是对象关系映射器 (ORM)

	Object Relatiinak Mapping,解决面向对象与关系数据库存在的互不匹配的现象的技术。其通过使用描述对象和数据库之间映射的元数据,将程序中的对象**自动持久化**到关系数据库中。
  • 硬编码方式实现持久化层的缺点
    • 持久化层缺乏弹性,持久化层的接口需要随着业务需求的变更修改
    • 持久化层同时与域模型与关系数据库模型绑定,无论哪方发生变化,都要修改持久化层相关代码,增加了软件的维护难度
  • ORM实现持久化层的优势
    • 采用映射元数据来描述对象关系的映射,ORM中间件能够再任何应用的业务逻辑层与数据库层之间充当桥梁
    • ORM的方法论基于三个核心原则:
      • 简单 :以最基本的形式建模数据
      • 传达性:数据库结构被任何人都能理解的语言文档化
      • 精确性:基于数据模型创建正确标准化的结构
  • ORM集成了数据库的操作,面向用户界面层与业务逻辑层与数据库的交互操作,比如业务逻辑层对表及表数据的增删查改,用户界面层对表数据的增删查改等
  • ORM技术特点:
    • ORM自动对Entity(实体)对象与数据库中的Table进行字段与属性的映射(即Table的字段映射到类对象的属性)
    • 上一个特点可以让应用开发时像操作对象一样从数据库获取数据
  • ORM优缺点
    • 会牺牲程序的执行效率和固定思维模式
    • ORM的系统一半是多层系统,系统层次多了,效率就会降低 ,面向对象的做法会对性能产生一定的影响

Django的ORM应用-python语言描述数据库结构

数据-模型语句描述数据模型,基类是 from django.db import models

如何新建数据库表

  • project/newapp/models.py
from django.db import models

class Header(models.Model):
    hearder_key = models.CharField(max_length=200, blank=True, verbose_name="请求头键名称")
    header_value = models.CharField(max_length=200, blank=True, verbose_name="请求头键的值")

    def __str__(self):
        return self.hearder_key
  • 应用数据模型

命令行执行django项目中的manage.py脚本
makemigrations 查找所有可用的models的子类
migrate 自动创建数据库表

python manage.py makemigrations
python manage.py migrate

动态管理接口

模型定义完后,Django可以自动生成一个专业的生产级的管理接口,允许用户通过页面对model对象进行添加、更改、删除的web站点,需要做的操作就是在管理站点上注册需要管理的model

  • 在project/newapp/admin.py中注册模型,如
from django.contrib import admin

# Register your models here.

from .models import Params,Header,Apitable

admin.site.register(Header)

版权声明:本文为ladyfive原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。