Django是一个开放源代码的Web应用框架,由Python写成,采用了MVC的框架模式.

MVC

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

M->Model(模型):是应用程序中用于处理应用程序数据逻辑的部分,通常模型对象负责在数据库中存取数据

V->View(视图):是应用程序中处理数据显示的部分,是应用程序中处理数据显示的部分

C->Controller(控制器):是应用于程序中处理用户交互的部分,通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据

核心思想:解耦

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

MTV

有些WEB框架觉得MVC的字面意思很别扭,就给它改了一下,改成了MTV,本质其实也是MVC

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

T->Template(模板):负责如何把页面展示给用户

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

安装

终端输入pip install Django==1.11.4(不写版本默认为最新版本)

验证

进入Python环境——>>>import django   导入成功即验证成功

创建项目

创建目录——终端进入到创建的目录下,输入django-admin startproject project——目录里生成以下文件即成功

设计表结构

在数据库中设计用来测试或使用的表就行

配置数据库(Django默认使用的是SQLite数据库)

1.在settings.py文件中,通过DATABASES选项进行数据库配置

2.配置SQL

python3.x安装的是pyMySQL

在__init__.py文件中写入两行代码:import pymysql

                pymysql.install_as_MySQLdb()

格式:

DATABASES = {

'default': {

'ENGINE': 'django.db.backends.mysql', # 使用的数据库类型

'NAME': '数据库名',

'USER': '用户名',

'PASSWORD': '数据库密码',

'HOST': '数据库服务器ip',

'PORT': '端口'

    }

}

创建应用(在一个项目中可以创建多个应用,每个应用进行一种业务处理)

终端进入Python-Django目录下的project目录

执行python manage.py startapp myApp,然后会生成一个myApp文件夹:

激活应用

在settings.py文件中,将myApp应用加入到INSTALLED_APPS选项中

INSTALLED_APPS = [

'django.contrib.admin',

'django.contrib.auth',

'django.contrib.contenttypes',

'django.contrib.sessions',

'django.contrib.messages',

'django.contrib.staticfiles',

'myApp'

]

定义模型(在model.py文件中定义模型)

例如:

from django.db import models

# Create your models here.

# 一个模型就是一个表

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()

scontent = models.CharField(max_length=20)

isDelete = models.BooleanField(default=False)

# 关联外键

sgrage = models.ForeignKey("Grades", on_delete=models.CASCADE)

说明:不需要定义主键,在生成时自动添加,并且值为自动添加

生成迁移文件

因为本来技术和经验不足,这一步对于新手来说,运气不好真的是有可能把你心态搞崩,反正我尝试了好多百度上的解决办法,都以失败而告终,最终看到一个帖子(之前看过的,忘记是哪一篇了),让我把我即将喷出的一口老血强行咽了下去

硬杠后端(后端坑系列)——Django前期工作的更多相关文章

  1. 2-STM32带你入坑系列(点亮一个灯--Keil)

    1-STM32带你入坑系列(STM32介绍) 首先是安装软件 这一节用Kei来实现,需要安装MDK4.7这个软件,怎么安装,自己百度哈.都学习32的人了,不会连个软件都不会安装吧....还是那句话 没 ...

  2. gulp入坑系列(2)——初试JS代码合并与压缩

    在上一篇里成功安装了gulp到项目中,现在来测试一下gulp的合并与压缩功能 gulp入坑系列(1)--安装gulp(传送门):http://www.cnblogs.com/YuuyaRin/p/61 ...

  3. 《神秘的程序员们》漫画26~28:《万年坑系列》 I、II、III(转)

    26 <万年坑系列> I:那些令你憎恶的系统从何而来? 世界上总有一些令人憎恶的系统,而你却天天非用不可.这些系统的提供方们既不缺钱也不缺人,有的还很热衷于改版升级. 但为何升级完后,它们 ...

  4. 3-STM32带你入坑系列(自己封装点亮一个灯的库--Keil)

    2-STM32带你入坑系列(点亮一个灯--Keil) 首先建一个stm32f103x.h的文件,然后 #include "stm32f103x.h" 还记得上一节 现在呢就是做一个 ...

  5. 1-STM32带你入坑系列(STM32介绍)

    由于自己的物联网开发板上的单片机是用的STM32,但是有些朋友没有用过,所以我将用这块开发板,带着大家入门STM32 先介绍一下STM32,我是在大三下学期的时候开始接触STM32,当时是想做一个小车 ...

  6. MySQL填坑系列--Linux平台下MySQL区分大小写问题

    大家好,我是软件大盗(道),下面开始我们的<MySQL填坑系列>. 笔者最近又在MySQL的边缘试探,然后,试探着,试探着就报错了. 书接上文,系统连接数据库时报错:找不到DB_TIMIN ...

  7. jmeter踩坑系列

    1.踩坑系列一: 抓包出来有host的字段,放到jmeter里面一起请求就报错了,去掉就请求正常了 1.踩坑系列二: 从花瓶复制过去 的values 前面有空格,肉眼看起来没有

  8. 入坑第二式 golang入坑系列

    史前必读: 这是入坑系列的第二式,如果错过了第一式,可以去gitbook( https://andy-zhangtao.gitbooks.io/golang/content/ )点个回放,看个重播.因 ...

  9. WebGL 踩坑系列-3

    WebGL 踩坑系列-3 绘制球体 在 WebGL 中绘制物体时需要的顶点是以直角坐标表示的, 当然了,gl_Position 是一个四维的向量,一般将顶点赋值给 gl_Position 时,最后一维 ...

随机推荐

  1. Jenkins之Log Parse的使用

    在初学使用Jenkins的同学们,应该都遇到过通过bash或者cmd命令执行输出的日志,没办法做到对error, warning等状态的分析和统计.在这里就给他介绍一款实现此功能的插件Log Pars ...

  2. C#字符串的一些常用方法

    字符串常用方法 string str =""; string[] strArray = str.Split('截取字符'); //按字符将字符串拆分为数组 str = str.Re ...

  3. 学习python的第四天

    4.29自我总结 一.Jupyter的安装以及运行 1.Jupyter的安装 运行CMD,在CMD中输入pip3 --default-timeout=100 install -U jupyter 再输 ...

  4. 设计模式之结构类模式PK

    结构类模式包括: 适配器模式 桥梁模式 组合模式 装饰模式 门面模式 享元模式 代理模式 结构类模式着重于如何建立一个软件结构 为什么叫结构类模式呢? 因为他们都是通过组合类或对象产生更大结构以适应更 ...

  5. 14 ,CSS 文字与文本

    1.CSS 中长度与颜色 2.CSS 中的文字属性 3.CSS 中的文本属性 14.1 CSS 中长度与颜色 长度单位 说明 in 英寸 cm 公分 mm 公里 cm 以目前字体高度为单位 ex 以小 ...

  6. K3数据字典备查

    select distinct f.FNumber as 系统代码, f.FName AS 系统名称,  d.FTableName AS 表名,d.FDescription AS 表说明,a.[nam ...

  7. 安卓开发笔记(二十):利用夜神模拟器调试运行Android Studio的apk

    一.首先来到夜神模拟器的安装目录下 如下图所示: 再把这整个文件夹添加到我们的windows环境变量里.然后再把android studio 和夜神模拟器都打开,注意必须同时打开而且不能够把夜神模拟器 ...

  8. 在Salesforce成长:需要好奇心

    今天的正题,今天谈谈好奇心和技术.这两天北大学霸Cherry分两次问了我两个问题,都触发了很好的结果和思考,让大家都受益. 第一天是她在做Salesforce和Flexible Report集成项目中 ...

  9. maven pom 引入本地jar包

    maven pom 引入本地jar包 在pom.xml同级目录下新建lib文件夹,并放入本地jar包. 配置Jar包的dependency,包括groupId,artifactId,version三个 ...

  10. SQL Server排名或排序的函数

    SQL Server获得排名或排序的函数有如下几种: 1.Rank():在结果集中每一条记录所在的排名位置,但排名可能不连续,例如:若同一组内有两个第一名,则该组内下一个名次直接跳至第三名   sel ...