【前言】前面(一)学习了web的基础知识,介绍到了MVC,项目使用一个Django框架。

  Django book:https://code.ziqiangxuetang.com/django/django-tutorial.html

1. web框架介绍

  具体介绍Django之前,必须先介绍WEB框架等概念。web框架: 别人已经设定好的一个web网站模板,你学习它的规则,然后“填空”或“修改”成你自己需要的样子。

  一般web框架的架构是这样的:

  其它基于python的web框架,如tornado、flask、webpy都是在这个范围内进行增删裁剪的。例如tornado用的是自己的异步非阻塞“wsgi”,flask则只提供了最精简和基本的框架。Django则是直接使用了WSGI,并实现了大部分功能。

二、MVC概念到MTV的变化

  仔细看,有助于理解django的项目框架:https://www.cnblogs.com/YeChing/p/6339969.html

[root@localhost helloworld]# tree
.
├── db.sqlite3 #django自带的数据库,python也自带操作函数
├── helloworld
│   ├── __init__.py #包
│   ├── __init__.pyc
│   ├── search2.py
│   ├── search2.pyc
│   ├── search.py   #http通信的表单提交。get post
│   ├── search.pyc
│   ├── settings.py #此Diango项目的设置/配置文件,包括模板路径,数据库连接
│   ├── settings.pyc
│   ├── testdb.py  #创建的数据库对象,增删改查
│   ├── testdb.pyc
│   ├── urls.py    #项目的URL声明,由此django驱动的网站的目录
│   ├── urls.pyc
│   ├── view.py   #在此的view向templates提交数据
│   ├── view.pyc
│   ├── wsgi.py      # WSGI 兼容的 Web 服务器的入口,以便运行你的项目。
│   └── wsgi.pyc
├── manage.py      #命令行工具,可让我们以各种方式与该 Django 项目进行交互
├── templates        #视图文件建立在这里,接收数据来视图输出。需要在settings.py中修改
│   ├── base.html     #TEMPLATES 中的 DIRS 为 [BASE_DIR+"/templates",]
│   ├── hello.html
│   ├── post.html     #这些模板可通过{% extends "base.html" %}继承base.html
│   └── search_form.html
└── TestModel       #使用模型,需要创建app
├── admin.py
├── admin.pyc
├── apps.py
├── __init__.py
├── __init__.pyc
├── migrations
│   ├── 0001_initial.py
│   ├── 0001_initial.pyc
│   ├── __init__.py
│   └── __init__.pyc
├── models.py #类名相当于数据库表名
├── models.pyc
├── tests.py
└── views.py

三、django的特点

  1、开启服务器之后,修改代码后只要保存,刷新一下前端就能立刻生效,无需重新启动。所以,对于我不擅长的html语言,可以频繁修改看现象。

  2、表名组成结构为:应用名_类名(如:TestModel_test)。

#1、
django-admin startapp TestModel # 2、models.py。类名就是表名,类里面的字段代表数据表中的字段(name),数据类型则由CharField(相当于varchar)、DateField(相当于datetime), max_length 参数限定长度。
from django.db import models class Test(models.Model):
name = models.CharField(max_length=20)
#3、
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'TestModel', # 添加此项
)
#4、在数据库中创建表
$ python manage.py migrate # 创建表结构
$ python manage.py makemigrations TestModel # 让 Django 知道我们在我们的模型有一些变更
$ python manage.py migrate TestModel # 创建表结构 #5、创建的表名:应用名_表名
Creating tables ...
……
Creating table TestModel_test #我们自定义的表
……

  3、ORM操作

  Django的orm操作本质上会根据对接的数据库引擎,翻译成对应的sql语句;所有使用Django开发的项目无需关心程序底层使用的是MySQL、Oracle、sqlite....,如果数据库迁移,只需要更换Django的数据库引擎即可;

  Djan提供了很多字段类型,比如URL/Email/IP/ 但是mysql数据没有这些类型,这类型存储到数据库上本质是字符串数据类型,其主要目的是为了封装底层SQL语句;

  例如:字符串类(以下都是在数据库中本质都是字符串数据类型,此类字段只是在Django自带的admin中生效)

  name=models.CharField(max_length=32)   #models.CharField  对应的是MySQL的varchar数据类型
EmailField(CharField):
IPAddressField(Field)
URLField(CharField)
SlugField(CharField)

  更详细参考:https://www.cnblogs.com/sss4/p/7070942.html

四、实现浏览器--Django--MySQL的信息实战

  https://www.cnblogs.com/feixuelove1009/p/5823135.html

五、各种操作

  1、Django中models对数据库的操作。models的各种操作:https://www.cnblogs.com/yangmv/p/5327477.html

  2、通过前端“按钮”,对数据库进行增删改查:https://blog.csdn.net/Panda_Murong/article/details/78894388

  3、ORM获取数据的三种方式:https://www.cnblogs.com/littlesky1124/p/9157464.html

web前端学习笔记(二)---Django的更多相关文章

  1. web前端学习笔记

    web前端学习笔记(CSS盒子的定位) 相对定位 使用相对定位的盒子的位置常以标准流的排版方式为基础,然后使盒子相对于它在原本的标准位置偏移指定的距离.相对定位的盒子仍在标准流中,它后面的盒子仍以标准 ...

  2. 【前端】Web前端学习笔记【2】

    [2016.02.22至今]的学习笔记. 相关博客: Web前端学习笔记[1] 1. this在 JavaScript 中主要有以下五种使用场景 在全局函数调用中,this 绑定全局对象,浏览器环境全 ...

  3. 【前端】Web前端学习笔记【1】

    ... [2015.12.02-2016.02.22]期间的学习笔记. 相关博客: Web前端学习笔记[2] 1. JS中的: (1)continue 语句 (带有或不带标签引用)只能用在循环中. ( ...

  4. Web前端学习笔记(001)

    ....编号    ........类别    ............条目  ................明细....................时间 一.Web前端学习笔记         ...

  5. web前端学习(二)html学习笔记部分(11)-- 没有标号记录的知识合集

    这一部分内容相对比较简单,就不按规矩排序了.(主要是网站上也没有这一部分内容的排序) 1.  html5的 非主体结构元素 学习笔记(1)里面记录过. 2.  html5表单提交和PHP环境搭建 1. ...

  6. web前端学习笔记:文本属性

    今天的web前端笔记主要讲述文本属性,希望能帮助到正在学习web前端开发的初学者们,废话不多说了,一起来看看文本属性的相关内容吧. 文本属性 文本缩进 将Web页面上的一个段落第一行缩进,这是一种最常 ...

  7. web前端学习(二)html学习笔记部分(10)-- HTML5构建应用布局和页面

    1.2.25  HTML5构建应用布局和页面 1.2.25.1  HTML5在移动开发中的准则 1.尽量使用单页面开发 2.慎重选择前端UI框架 3.动画.特效使用准则(60fps) 浏览器消耗最小的 ...

  8. web前端学习(二)html学习笔记部分(1) -- html5新增的元素及特性等等

    检查,在浏览器中可以调整设备类型 html5实现水池效果. lang:en为英文语言,中文语言zh <html lang="en"> <head> < ...

  9. web前端学习(二)html学习笔记部分(9)-- 响应式布局

    1.2.23  响应式布局基础 1.2.23.1  响应式布局介绍 1.响应式布局是2010年5月份提出的一个概念,简而言之,就是一个网站能够兼容多终端 -- 而不是为每个终端做一个特定的版本.这个概 ...

随机推荐

  1. 【Java】构造方法

    成员变量声明时初始化和构造方法中初始化的区别 声明时为成员变量赋值,那每次创建这个类的对象都是同一个值. 构造方法初始化,每次创建对象时可以为每一个对象赋不同的值(此时要通过有参构造). 无返回值类型 ...

  2. POJ-3208 Apocalypse Someday (数位DP)

    只要某数字的十进制表示中有三个6相邻,则该数字为魔鬼数,求第X小的魔鬼数\(X\le 5e7\) 这一类题目可以先用DP进行预处理,再基于拼凑思想,用"试填法"求出最终的答案 \( ...

  3. Codeforces Round #652 (Div. 2) B. AccurateLee(字符串)

    题目链接:https://codeforces.com/contest/1369/problem/B 题意 给出一个长 $n$ 的 二进制串,每次可以选择字符串中的一个 $10$,然后删除其中的一个字 ...

  4. CodeForces - 916C 思维

    题意:给你n,m,表示n个顶点和m条边,让你构造一个图. 要求 1.1->n最短路为素数 2.最小生成树边权和为prime 3.没有重边 4.边大小[1,1e9]. (题目给定m>n-1) ...

  5. HDU-6290 奢侈的旅行 (Dijkstra+堆优化)

    高玩小Q不仅喜欢玩寻宝游戏,还喜欢一款升级养成类游戏.在这个游戏的世界地图中一共有nn个城镇,编号依次为11到nn.这些城镇之间有mm条单向道路,第ii 条单项道路包含四个参数ui,vi,ai,biu ...

  6. L3-007 天梯地图 (30分) 最短路+dp

    最短路+dp思路:nuoyanli 520 Let's play computer game 输入样例1: 10 15 0 1 0 1 1 8 0 0 1 1 4 8 1 1 1 5 4 0 2 3 ...

  7. Pdf和Office相关归集

    Spire 支持Pdf.Office等的诸多操作,使用方便,需收费,免费版本仅支持10页以内的操作,在 这里 可以下载库. 优点 测试过打印效果佳,操作简便. 缺点 PDF打印慢,免费版本仅支持10页 ...

  8. Docker运行时资源限制

    Docker 运行时资源限制Docker 基于 Linux 内核提供的 cgroups 功能,可以限制容器在运行时使用到的资源,比如内存.CPU.块 I/O.网络等. 内存限制概述Docker 提供的 ...

  9. LINUX - 获取本地ip

    Linux编程获取本机IP地址的几种方法 参考: https://blog.csdn.net/zhongmushu/article/details/89944990 https://www.cnblo ...

  10. Tensorflow2的基本用法

    张量表示数据,用计算图搭建神经网络,用会话执行计算图,优化线上的权重(参数)->得到模型. 张量(tensor):多维数组(列表)                 阶:张量的维数. 数据类型: ...