Django中的ORM 和入门基础

Posted maojiang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django中的ORM 和入门基础相关的知识,希望对你有一定的参考价值。

day62  2018-06-12

 

1. 内容回顾

1. web框架的本质

1. socket

浏览器: socket客户端

服务器: socket服务端

 

2. HTTP协议:规定了一个收发消息的格式

 

3. 消息分类

请求(request):浏览器向服务端发送的消息

GET /index/ HTTP/1.1

k1:v1

...

请求体

响应(response):

HTTP/1.1 200 OK

k1:v1

...

响应体             --> 浏览器显示的那部分内容 

2. Python Web框架分类

功能分类:

a: 收发消息相关(socket)

b: 根据不用的URL执行不同的函数(业务逻辑相关的)

c: 实现动态网页(字符串的替换)

 

Web框架分类:

1. 自己实现b,c,使用第三方的a                    --> Django

2. 自己实现b,使用第三方的a和c                    --> Flask

3. 自己实现ac                                 --> Tornado

 

Django是一个大而全的web框架。

3. 两个模块

web服务器程序   <--WSGI协议-->  web应用程序

 

1. wsgiref

Django开发环境使用的就是wsgiref模块

2. jinja2(Flask)

渲染html页面,其实就是实现字符串的替换。

 

4. Django

1. Django安装

2. 新建Django项目并启动

3. 三件套

4. templates的配置

5. 静态文件的配置

 

2. 今日内容

 

1. 登录功能的实现

1. form表单提交数据的注意事项:

1. 是form不是from,必须要有method和action

2. 所有获取用户输入的表单标签要放在form表单里面,表单标签必须要有name属性

3. form表单必须要有submit按钮

2. GET和POST

 

什么时候用GET:

向服务端请求一个网页的时候

搜索引擎检索时

 

什么时候用POST:

使用表单向服务器提交数据时

 

 

3. request.method  --> 获取的是你请求的方法(GET/POST...)必须是大写!!!

4. request.POST    --> 获取POST提交过来的全部数据(字典)

5. redirect        --> 跳转到指定页面!!!

 

 

基础必会三件套:

1. HttpResponse("OK")

2. render(request, "login.html")

3. redirect("URL")

 

6. app  

project   (学校)

- app   (学院)

 

创建APP:

python3 manage.py startapp app01

 

 

创建好APP,记得告诉Django, 我有这个app

在settings.py中,

# 安装的app都有哪一些

INSTALLED_APPS = [

‘django.contrib.admin‘,

‘django.contrib.auth‘,

‘django.contrib.contenttypes‘,

‘django.contrib.sessions‘,

‘django.contrib.messages‘,

‘django.contrib.staticfiles‘,

‘app01‘,

# ‘app01.apps.App01Config‘,

]

 

Django中的数据库

2. ORM(对象关系映射)

1. pymysql

import pymysql

conn = pymysql.connect(

host="127.0.0.1",

port=3306,

user="root",

password="123",

database="day62",

charset="utf8"

)

cursor = conn.cursor()

cursor.execute("slect * from user;")

ret = cursor.fetchall()

 

 

2. 我们写原生css和用jQuery

document.getElementById(id)

$("#id")

 

 

数据表                       类

数据行                       实例对象

字段                         属性

 

 

代码操作数据库的方式;

直接执行SQL

优点:执行效率高

缺点:开发效率低

按照特定的语法写,翻译成SQL语句再去执行

优点:开发效率高

缺点:执行效率低,你会忘记SQL语句

 

ORM:

sqlAlchemy  Flask里面也有一个orm就是sqlAlchemy

 

 

ORM和原生的SQL语句,根据具体的应用场景自行取舍。

 

Django项目使用MySQL数据库

1. 在Django项目的settings.py文件中,配置数据库连接信息:

Django里面的ORM的使用:

1. 告诉Django连接那个数据库

DATABASES = {

‘default‘: {

‘ENGINE‘: ‘django.db.backends.mysql‘,

‘NAME‘: ‘day62‘,

‘HOST‘: ‘127.0.0.1‘,

‘PORT‘: 3306,

‘USER‘: ‘root‘,

‘PASSWORD‘: ‘123‘,

}

}

2. 告诉Django怎么连接

Django默认使用的是 MySQLdb模块 连接数据库

告诉Django用pymysql这个模块去连接MySQL

在settings.py同目录下的__init__.py文件中,指定使用pymysql模块代替MySQLdb

import pymysql

pymysql.install_as_MySQLdb()

3. 在app/models.py文件中定义类

一定要继承models.Model

 

4. 执行创建表的操作

1. python3 manage.py makemigrations    --> 将models.py的修改登记到小本本上

2. python3 manage.py migrate           --> 将修改翻译成SQL语句,去数据库执行

 

重点来了!!!!为了让我们好区分  做了一个顺序区分

 

       先创建一个django项目

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

 

3. 图书管理系统

1. 表结构设计

1. 出版社

2. 书

3. 作者

 技术分享图片

 

以上是关于Django中的ORM 和入门基础的主要内容,如果未能解决你的问题,请参考以下文章

django orm基础

web框架之--Django基础入门

Django之ORM

Django基础六之ORM中的锁和事务

django框架基础-ORM操作-长期维护-20191213

Django 基础 之ORM简介与单表操作