Django请求&响应

1. Django三板斧


1. "HttpResponse"
# 返回值是字符串类型

2. "render"


3. "redirect"
重定向


"urls.py--"
from app01 import views

urlpatterns = [
    path(r'^admin/',admin.site.urls),
    path(r'index', views.index),
]
# django自动重启的现象,叫做热更新


"views.py"
from django.shortcuts import render, HttpResponse, redirect

def index(request):
    print(123)
    
    ctime = datetime.datetime.strftime("%Y-%m-%d %X")
    a = 1
    b = 2
    
    # 暂且记忆,返回值是字符串类型
    return HttpResponse("ok")
    
    return render(request, 'index.html',{"ctime":ctime},locals())
    # locals()  获取局部名称空间内的全部变量
	
    return redirect('/admin/')  # 自动补充上ip+port/admin

index.html

<h1>hello render</h1>
<h2>当前时间:{{ ctime }}</h2>

2. 静态文件配置

# 什么是静态文件
    css,js,jq,bootstrap,img...

# 以登录功能为例

"静态文件的存储路径一般是static,默认是没有这个文件夹的,所以我们手动创建"
# 根目录下创建static文件夹

# 静态文件不能访问,是因为后端没有开发访问的路径
去 settings.py配置

STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'static')
]

"urls.py"
path(r'^login', views.login)

views.py
def login(request):
    return render(request, "login.html")



3. request 请求

form表单

<form action="" method="">
    1. action参数不写,提交到当前页面
    2. 全写:指定具体地址
        https://passport.baidu.com/v2/api/?login
    3. 只写后缀
        /login/  => 自动补全ip和端口
        http://127.0.0.1:8000/login/
       
</form>


"面试题:get和post的区别"
http四大特征
基于请求响应
在应用层
TCP,UDP在传输层
IP协议在网络层

传输层和应用层之间抽象出socket层

"get和post请求"
1. get 没有请求体
2. get请求对数据大小由限制 4kb
3. 不安全

1. post才有请求体
2. post对数据大小没有限制,可以无限传
3. 安全

# 如何判断请求方式???
request.method

if request.method == "POST":
    # 如何获取post请求方式的数据??
    print(request.POST)  # 跨站请求验证失败
    print(request.POST.get('user'))
    # get只能拿到最后一个值
    print(request.POST.getlist('hobby'))
    # 拿到整个列表所有值

if request.method == "GET":
    request.GET
    request.GET.get()

"""
MySQL中可能会出现的安全问题:SQL注入
前端中可能会出现的安全问题: xss攻击
django中可能会出现的安全问题:xsrf请求

"""

4. pycharm连接MySQL

5. django连接MySQL


# django默认的操作MySQL的模块是MySQLdb

"在python3.6以下,需要加入下面两句话"
from pymysql import install_as_MySQLdb
install_as_MySQLdb()
# 让pymysql以 MySQLdb的运行默认和django的ORM对接运行

"mysqlclient"  -- 缺点就是一般情况下安装不上


posted @ 2022-02-24 14:56  Joshua_jiaxue  阅读(49)  评论(0编辑  收藏  举报