一、初识web框架
手撸一个web框架的总结:
1、web框架的本质
socket服务端与浏览器的通信
2、socket服务端功能划分
a.负责与浏览器收发消息(socket通信)
wsgiref/uWsgi/gunicorn
b.根据用户访问的不同路径执行不同的函数
自己写
c.从HTML中读取内容,并且完成字符串的替换
jinja2(模板语言)
WSGI协议:
a与bc之间通信的协议
3、Python中web框架的分类
1、按上面三个功能划分:
1.框架自带a,b,c, -->Tornado
2.框架自带b,c,使用第三方的a -->Django
3.框架自带b,使用第三方的a和c -->Flask
2、按另一个维度划分
1.Django -->大而全(你做一个网站能用到的功能他都有)
2.其他 -->Flask 轻量级
二、安装Django
1、配置文件
新建Django项目:
django-admin startproject mysite
静态文件:
STAITICFILES_DIRS = [
os.path.join(BASE_DIR, "static")
]
静态文件保存目录的别名:
STATIC_URL = '/static/'
三、Django基础
1、GET请求和POST请求
GET请求:
1、浏览器请求一个页面
2、搜索引擎检索关键字的时候
POST请求:
1、浏览器向服务端提交数据
2、Django中的app
app应用,方便在一个大的Django项目中管理实现不同的业务功能
四、Django使用ORM详细步骤
1、自己手动创建数据库
create database 数据库名;
2、在Django项目中设置连接数据库的相关配置(告诉Django连哪一个数据库)
# 配置设置(settings)
DATABASES = {
‘default’: {
‘ENGINE’: ‘django.db.backends.mysql’, # 数据库引擎
‘NAME’: ‘mydata’, # 你要存储数据的库名,事先要创建之
‘USER’: ‘root’, # 数据库用户名
‘PASSWORD’: ‘0000’, # 密码
‘HOST’: ‘localhost’, # 主机
‘PORT’: 3306, # 数据库使用的端口
}
}
3、告诉Django用pymysql代替默认的MySQLDB 连接MySQL数据库
#我们将Django框架的数据库设置为MySQL,首先需要安装 pymsql 模块库(Python3)
#在工程文件夹的 __init__.py 初始化配置文件中,添加如下代码:
import pymysql # 导入mysql库
pymysql.install_as_MySQLdb() # 设置pymsql为Django默认数据库连接驱动
4、在APP下面的models.py 文件中定义一个类,这个类必须继承models.Model
class(models.Model):
...
5、执行两个命令:
1. python3 manage.py makemigrations
2. python3 manage.py migrate
五、单表增删改查
1、get请求,POST请求 URL传值
1、get格式
127.0.0.1:8080/?name=alex&id=7
2、Django后端取值
request.GET -->大字典
request.GET[‘name’] -->key不存在就报错了
request.GET.get(‘name’,None) -->有缺省值,推荐用这个方法
3、POST请求取值
request.POST.get(‘name’,None)
4、GET请求和POST请求
1、GET请求
1.GET请求携带的数据都拼在了URL上
2.GET请求携带的数据长度限制为40k
应用场景
1.地址栏输入URL
2.点击a标签
3.搜索引擎检索
2、POST请求
1.form表单提交数据
2.上传文件
3、其它常用:
1.request.path_info 获取用户的请求路径
2.request.body
5、response基础必备三件套
1.HTTPResponse
2.Render
3.Redirect
2、ORM删除修改
1、删除
2、修改
六、表单一对多