1. 请求(request) ---> 浏览器端的请求
请求方法 路径 HTTP/1.1\r\n
k1:v1\r\n
...\r\n
\r\n
请求体 <-- 能够有,能够没有css
2. 响应(response) ---> 服务器端的响应
HTTP/1.1 状态码 状态描述符\r\n
k1:v1\r\n
Content-Type: text/html; charset=utf8\r\n
\r\n
响应正文 <-- HTML内容html
GET请求和POST请求都属于HTTP协议规定的请求方法。python
1. 何时用GET请求?
1. 浏览器想要获得一个HTML页面的时候
2. 搜索引擎查询关键字的时候,例如www.sogo.com/web/?query=迪丽热巴
2. 何时用POST?
浏览器向服务器提交数据,好比登陆、注册、上传文件等mysql
3. 实际中GET和POST的应用场景
1. GET:
1. 直接在浏览器地址栏输入URL访问网站
2. a标签
2. POST:
1. 登陆注册
2. 修改(新增)大段的数据
3. 上传文件web
1.按上面三个功能划分:sql
2. 按另外一个维度来划分:数据库
Django是一个开放源代码的Web应用框架,由Python写成。采用了MVC的框架模式,即模型M,视图V和控制器C。它们各自的职责以下:django
层次
|
职责
|
模型(Model),即数据存取层
|
处理与数据相关的全部事务: 如何存取、如何验证有效性、包含哪些行为以及数据之间的关系等。
|
模板(Template),即业务逻辑层
|
处理与表现相关的决定: 如何在页面或其余类型文档中进行显示。
|
视图(View),即表现层
|
存取模型及调取恰当模板的相关逻辑。模型与模板的桥梁。
|
pip3 install django==1.11.11 ---> 指定要按安装的版本浏览器
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple/ django==1.11.11 ---> 指定源和版本安装服务器
pip3 install -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com django==1.11.11 ---> 源为http时
到你要保存Django项目的目录下执行 django-admin startproject 工程名
django-admin startapp app名
在项目的根目录下(也就是有manage.py的那个目录),运行:
1. Templates(存放HTML文件的配置) <-- 告诉Django去哪儿找个人HTML文件
2. 建立静态文件文件夹(通常命名为static,存放css/js/图片等)
在settings.py下的STATIC_URL = '/static/' 表明静态文件保存目录的别名,引用时就是引用此名字而不是存放html文件的文件夹名字!
同时新增以下:
STATICFILES_DIRS = [ os.path.join(BASE_DIR, "static") ] # 静态文件的真实路径
3. 注释掉setting.py中 带有 csrf 的那一行
4. 配置APP
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'app01.apps.App01Config', 'app02.apps.App02Config', 'app03.apps.App03Config', ..., ] # 在这里增长APP的关联关系
5. 修改数据库链接配置(以mysql为例)
1. 在setting.py文件下的修改以下:
1 DATABASES = { 2 'default': { 3 'ENGINE': 'django.db.backends.mysql', # 数据库引擎(这里使用mysql) 4 "NAME": "djangoapp01", # 数据库 5 'HOST': "127.0.0.1", # IP地址 6 "PORT": 3306, # 端口号 7 "USER": "root", # 用户名 8 "PASSWORD": "mysql123", # 密码 9 } 10 }
2. 告诉Django用pymysql代替默认的MySQLDB 链接MySQL数据库,在项目同名的文件夹下的/__init__.py文件中(不是app的/__init__.py文件!),写下面两句:
import pymysql pymysql.install_as_MySQLdb()
类 ---> 数据表
对象 ---> 数据行
属性 ---> 字段
ORM只能操做数据表和数据行,不能操做数据库,数据库必需要手工建立。
一、在app/models.py里面定义类,类名即表名。
class Publisher(models.Model): id = models.AutoField(primary_key=True) # 自增的ID主键 name = models.CharField(max_length=64, null=False, unique=True) # 建立一个varchar(64)的惟一的不为空的字段
二、将数据update至数据库中
1. python3 manage.py makemigrations --> 把models.py里面的更改记录至app下的migrations下的.py文件 2. python3 manage.py migrate --> 把更改翻译成SQL语句,去数据库执行