Django笔记

mac

/Library/Frameworks/Python.framework/Versions/3.9/bin/django-admin 

创建项目

django-admin.py  startproject newpro      

 

 

 

1.启动django服务器命令(默认8080端口)

python3 manage.py runserver

启动 时指定 IP 地址和端口号的命令

python3 manage.py runserver 192.168.1.5:8001

 

 

post请求不想加注解的话,把Csrf的中间件注释掉(项目settings文件里)

 

链接映射有个类似flask的蓝图

主项目的urls.py  让他去demo应用的 urls文件继续找到,那么每个应用就可以独立有自己的路由了

from demo import urls
urlpatterns = [
    path('task/',include(urls)),
]

 

应用的urls

from django.urls import path

from .views import  SendSMSView

urlpatterns=[
    path("send_sms/",SendSMSView.as_view(),name="send_sms"),
]

 

 

 关闭Django多进程

 

官方文档解释django自带的server默认是多线程

测试

python3 manage.py runserver 0.0.0.0:8000

django开两个接口,第一个接口sleep(20),另一个接口不做延时处理(大概耗时几毫秒)

先请求第一个接口,紧接着请求第二个接口,第二个接口返回数据,第一个接口20秒之后返回数据

证明django的server是默认多线程

python3 manage.py runserver 0.0.0.0:8000 --nothreading

更多见Ddjango 资料  https://zhuanlan.zhihu.com/p/84014519

 

Django原始路由

from django.urls import re_path as url
url(r"^api/gethosts/$", get_hosts)


from django.http import JsonResponse
def get_hosts(request):
    return JsonResponse({})

 

 

序列化返回的时间带T解决,在序列化器加上

class Uc_reportSerializer(serializers.ModelSerializer):
    create_time = serializers.DateTimeField(format='%Y-%m-%d %H:%M:%S', read_only=True)
    update_time = serializers.DateTimeField(format='%Y-%m-%d %H:%M:%S', read_only=True)

 

 

打印每个请求的日志,在项目配置表中添加

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'formatters': {
        'verbose': {
            'format': '[application] %(levelname)s %(asctime)s %(module)s %(message)s'
        }
    },
    'handlers': {
        'console': {
            'level': 'DEBUG',
            'class': 'logging.StreamHandler',
            'stream': sys.stdout,
            'formatter': 'verbose'
        },
    },
    'loggers': {
        'app': {
            'handlers': ['console'],
            'level': 'DEBUG',
            'propagate': True,
        },
    },
}

 

 

 

其他函数调用django的函数的方法

import requests
# 视图的方法
def iterationCountMsg(request, *args, **kwargs):
    iterationId = request.data
    print(iterationId)
s = requests.Session()
s.data={"data":123123}
iterationCountMsg(s)

 

 

模版语法正常展示html标签

<!-- 使用safe过滤器 -->
<div>
    {{ html_content|safe }}
</div>

 

posted @ 2019-05-28 17:25  凯宾斯基  阅读(137)  评论(0编辑  收藏  举报