【前言】前面(一)学习了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. codeforces628D. Magic Numbers (数位dp)

    Consider the decimal presentation of an integer. Let's call a number d-magic if digit d appears in d ...

  2. Codeforces Round #652 (Div. 2)D. TediousLee 推导

    题意: Rooted Dead Bush (RDB) of level 1是只有一个点,如下图 当(RDB) of level i变成(RDB) of level i+1的时候,每一个顶点要进行下面的 ...

  3. Codeforces Gym-102219 2019 ICPC Malaysia National J. Kitchen Plates (暴力,拓扑排序)

    题意:给你5个\(A,B,C,D,E\)大小关系式,升序输出它们,如果所给的大小矛盾,输出\(impossible\). 题意:当时第一眼想到的就是连边然后排序,很明显是拓扑排序(然而我不会qwq,之 ...

  4. vi、wc、gzip、bzip2、tar、yum安装、dpek、用户信息操作等命令

    命令模式 输入"dd"即可将这一行删除 按下"p"即可粘贴 插入模式: a:从光标这个位置之后插入 A:在行尾插入 i:从光标之前插入 I:行首插入 o:在光标 ...

  5. K8S(13)监控实战-部署prometheus

    k8s监控实战-部署prometheus 目录 k8s监控实战-部署prometheus 1 prometheus前言相关 1.1 Prometheus的特点 1.2 基本原理 1.2.1 原理说明 ...

  6. CS144学习(1)Lab 0: networking warmup

    CS144的实验就是要实现一个用户态TCP协议,对于提升C++的水平以及更加深入学习计算机网络还是有很大帮助的. 第一个Lab是环境配置和热身,环境按照文档里的配置就行了,前面两个小实验就是按照步骤来 ...

  7. wordpress 主题安装 您点击的链接已过期 nginx 出现413 Request Entity Too Large

    1 nginx 出现413 Request Entity Too Large 问题是限制上传大小,解决: 1.打开nginx配置文件 nginx.conf, 路径一般是:/etc/nginx/ngin ...

  8. FZU 2082 过路费(树链剖分 边权)题解

    题意:给出每条边权值,可以更新每条边权值,询问两个点路径的最小权值 思路:重链剖分边权化点权,让每个儿子节点继承边权. 插点权的时候比较边的两个节点的深度,插进儿子节点中. 代码: #include& ...

  9. HDU 4511 小明系列故事——女友的考验 (AC自动机 + DP)题解

    题意:从 1 走到 n,要求所走路径不能出现给定的路径,求最短路 思路:因为要求不能出现给定路径,那么我可以求助ac自动机完成判断. 我们可以在build的时候标记哪些路径不能出现,显然下面这种表示后 ...

  10. Pycharm+任务栏悬浮+docked mode

    先点下所想改变模式的模块, 然后: Window -> Activate tool window -> docked mode.