配置文件
from django.conf import settings
settings.HTL #配置中的变量全部大写,即为常量
配置路由
from django.urls import path,include
#path 等值匹配
from django.conf.urls import url,include
#url 正则匹配
urlpatterns = [
url("^predict$",model_predict), #执行视图函数
url("^(\d+?)$",model_predict), #捕获组,捕获到的内容以位置参数传给视图函数
url("^(?p<key>\d+?)$",model_predict),#命名组,关键字传参
]
视图函数执行时,在项目根目录下
定义的视图函数等,均在包里,而包里是不能有执行的主程序的
视图返回json数据有中文,浏览器显示不出的问题
使用浏览器接收 json时,显示不出,解决:
from django.http import HttpResponse,JsonResponse
from django.shortcuts import render,redirect
data = {"code":200,"data":"请求成功"}
return JsonResponse(data)
#直接使用浏览器页面接收,会不能显示中文
#但是requests请求却可以正常解析出中文
#res.josn()
#改为
return HttpResponse(json.dumps(data,ensure_ascii=False))
#不指定content_type="application/json"也行
或者使用ajax异步 接收json
模板填充数据
给模板字典类型的数据,在页面内部直接使用{{ key }}
return render(request,"app1/index.html",data_dict)
#在页面内,直接使用字典的key
#{{key}} 双层大括号获取变量的值
#{% for i in key%} 模板语句
局域网访问django
默认运行的ip,port--->127.0.0.1:8000
指定ip,port运行:
python3 manage.py runserver 192.168.214.1:8000
在settings文件中配置:ALLOWED_HOSTS = ['*']
修改ubuntu虚拟机网络连接方式:桥接
局域网通过:192.168.214.1:8000访问服务器.
返回中文响应乱码
#视图
#request 请求对象
def user_register(request):
return HttpResponse("用户注册",content_type="text/html",status=200)
乱码:
解决方案:
不指定 “content_type” 参数
无法迁移数据库
python3 manage.py makemigrations
python3 manage.py migrate
#无迁移动作
解决:
- 删除要更改的数据库
- 删除应用中migrations/ 下的迁移文件 ,注意不是__init__.py
- 重新迁移
发送HTTP请求
r = requests.get("http://127.0.0.1:8000/xjsys/v1/user/reg")
#可以获得 response
r.status_code
r.content #字节串
r.text # 解码后的字符串
r.encoding = "utf-8" #猜测的编码