Django基础第一天

1. HTTP协议消息的格式:

1. 请求(request)

请求方法 路径 HTTP/1.1\r\n

k1:v1\r\n

...\r\n

\r\n

请求体

2. 响应(response)

HTTP/1.1 状态码 状态描述符\r\n

k1:v1\r\n

Content-Type: text/html; charset=utf8\r\n

\r\n

响应正文

2. Python web框架的本质:

a. 收发socket消息 --> 按照HTTP协议消息格式去解析消息

b. 路径和要执行的函数的对应关系 --> 主要的业务逻辑

c. 字符串替换 --> 模板(特殊符号 --> 数据)

3.一个完整的请求流程:

0. 启动服务端,等待客户端(用户的浏览器)来连接

1. 在浏览器地址栏输入URL,与服务端建立连接,浏览器发送请求

2. 服务端收到请求消息,解析请求消息,根据路径和函数的对应关系,找到将要执行的函数

3. 执行函数,打开HTML文件,进行字符串替换,得到一个最终要返回的HTML内容

4. 按照HTTP协议的消息格式要求,把HTML内容回复给用户浏览器(发送响应)

5. 浏览器收到响应的消息之后,按照HTML的规则渲染页面.

6. 关闭连接

4.Django安装

首先把python安装目录E:\Python\Python36\Scripts(此目录为我的个人目录)配置到环境变量Path中。

然后打开cmd以管理员身份运行,输入 pip install django==1.11.11

5.Django 项目配置

配置相关 项目名/settings.py文件

1. Templates(存放HTML文件的配置)

2. 静态文件(css/js/图片)

# 静态文件保存目录的别名

STATIC_URL = '/static/'

# 所有静态文件(css/js/图片)都放在我下面你配置的文件夹中

STATICFILES_DIRS = [

]

3. 注释掉setting.py中 带有 csrf 的那一行(大概在第45~47行)

复习(五星,必须牢记)

form表单往后端提交数据需要注意哪三点:

1.form不是from,所有获取用户输入的标签都应该放在form里面, 并且必须要有name属性

2.action属性控制往哪儿提交,method一般都设置成post

3. 提交按钮必须是type=submit,不能是别的类型

6.GET请求和POST请求

GET请求:

1. 浏览器请求一个页面

2. 搜索引擎检索关键字的时候

POST请求:

1. 浏览器向服务端提交数据,比如登录/注册等

7.Django中的APP:

project --> 项目 (老男孩教育大学校)

APP --> 应用 (Linux学院/Python学院/大数据学院/Java学院)

方便我们在一个大的Django项目中,管理实现不同的业务功能.

1. 创建APP的命令

1. 命令行,在Django项目的根目录输入:

python manage.py startapp app(app为名字)

8.ORM

ORM是Python处理数据库的,在app模块中的models.py创建类进行。

优点:

1. 简单,不用自己写SQL语句

2. 开发效率高

缺点:

1. 记忆你这个特殊的语法

2. 相对于大神些的SQL语句,肯定执行效率有差距

ORM的对应关系:

类 ---> 数据表

对象 ---> 数据行

属性 ---> 字段

9.ORM能做的事儿:

1. 操作数据表 --> 创建表/删除表/修改表

操作models.py里面的类

2. 操作数据行 --> 数据的增删改查

不能创建数据库,自己动手创建数据库

10.使用Django的ORM详细步骤:

1. 自己动手创建数据库

create database 数据库名;

2. 在Django项目中设置连接数据库的相关配置(告诉Django连接哪一个数据库,找到app里的settings.py进行配置)

# 数据库相关的配置

DATABASES = {

'default': {

'HOST': '127.0.0.1', # 连接数据库的地址

'PORT': 3306, # 端口

'NAME': "day61", # 数据库名称

'USER': 'root', # 用户

'PASSWORD': '123456' # 密码

}

}

3. 告诉Django用pymysql代替默认的MySQLDB 连接MySQL数据库

在项目/__init__.py文件中,写下面两句:

import pymysql(pymysql在Python中是没有的,需要单独下载。pip install pymysql)

# 告诉Django用pymysql来代替默认的MySQLdb

pymysql.install_as_MySQLdb()

4. 在app下面的models.py文件中定义一个类,这个类必须继承models.Model

class 类名(models.Model):

...

5. 执行两个命令

python manage.py makemigrations

python manage.py migrate

10.ORM单表的增加和查询:

1. 查询

2. 增加

对应写出的页面

页面展示固定语法

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181012G1ZD5I00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券