内容回顾
1.HTTP协议
1.请求方式:8种 GET / POST
2.状态码
1xx
2xx 200 ok
3xx 重定向 301 302
4xx 请求的错误
5xx 服务器的错误
3.url
协议 域名 路由 参数
4.格式
请求(request ---浏览器给服务端发的细信息)
'请求方式URL HTTP/1.1
k1:v1
k2:v2
请求体(请求数据)' get 请求没有请求体
响应(reponse---服务端给浏览器发送的消息)
'HTTP/1.1状态码 状态描述
k1:v1
k2:v2
响应数据(响应体)' ---- >HTML文本
2.浏览器发送请求接受响应的流程
1.在浏览器的地址中输入URL,回车,发送了一个GET请求
2.服务器接受请求,获取到路径,根据不同的路径返回不同的内容
3.服务器把响应的内容组成符合HTTP协议响应格式的字符串返回给浏览器
4.浏览器接受到响应,拿到响应体(HTML代码),进行渲染
3.web框架(socket服务端)
功能:
1.socket收发消息
2.根据不同的路径返回不同的内容
3.动态页面(字符串替换 --- 模板的渲染)
4.分类
django : 2 3 生产 wsgiref 上线 uwsgi
flask: 2
tornado: 1 2 3
5.django
1.下载安装
命令行:pip install django==1.11.18 -i 源
pycharm
2.创建项目
命令行: django-admin startproject 项目名
pycharm
3.启动
命令行:
切换达到项目目录下: manage.py
python manage.py runserver # 127.0.0.1:8000
python manage.py runserver 80 # 127.0.0.1:80
python manage.py runserver 0.0.0.0:80 # 0.0.0.0:80
今日内容
1.写一个完整的登录实例
静态文件的配置
STATIC_URL = '/static/' # 别名
STATICFILES_DIRS = [
os.path.join(BASE_DIR , 'static')
]
2. form 表单:
1.form标签有 action=""
method= "post"
novalidate 不需要验证
2. input标签要有name属性
3.需要有一个type=submit的input标签或者button按钮
目前看有提交post请求
在settings.py中注释MIDDLEWARE中的
django.middleware.csrfViewMiddleware
request.method # 请求方式 POST / GET
request.POST # form表单提交POST请求的数据,类似字典
return redirect('https://baidu.com')
return redirect("/index/") # 响应头 Location:/index/
get和post区别
get获取一个页面
django中获取数据 :request.GET
post:提交数据
数据不可见
django中获取数据:request.POST
2.APP
命令行: python manage.py startapp app名称
pycharm:
tools --->run manage.py task ------> startapp app名称
注册APP
# 注册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' # 推荐写法 ]
3.ORM的介绍和使用
1.django项目中使用mysql数据库的流程:
1.创建数据库
create database 数据库的名字
2.配置
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', # 引擎 'NAME': 'day60', # 数据库名字 'HOST': '127.0.0.1', # IP 'PORT': 3306, # 端口 'USER': 'root', # 用户名 'PASSWORD': '123', # 密码 } }
3.告诉django使用pymysql这个模块连接数据库
在settings.py同级目录下的init中写代码
import pymysql pymysql.install_as_MySQLdb()
4.创建表(在app下的models.py中写类)
from django.db import models class User(models.Model): username = model.CharField(max_length=20) password = models.CharField(max_length=20)
5.执行数据库迁移的命令
python manage.py makemigrations # 保存models.py的变更记录 python manage.py migrate # 把变更记录同步到数据库中
2.ORM操作
# 获取表中的所有数据 对象列表 ret = models.User.object.all() for i in ret : print(i.username,i.password,type(i.username)) #字段 #获取一条数据 ret = models.User.object.get(username="alex") # 对象 get 查不到会报错 查到多个也会报错 # 获取满足条件的多个数据,对象列表 ret = models.User.object.filter(password='123')