1、启动项目可以访问
上节课,我们创建了一个HelloWorld项目,目录结果如下:
$ cd HelloWorld/
$ tree
.
|-- HelloWorld
| |-- __init__.py
| |-- asgi.py
| |-- settings.py
| |-- urls.py
| `-- wsgi.py
`-- manage.py
启动项目:
% python3 manage.py runserver 0.0.0.0:8000
2、配置视图和 URL 配置
HelloWorld/HelloWorld/views.py 文件代码:
from django.http import HttpResponsedef hello(request):return HttpResponse("Daozy极限编程")
HelloWorld/HelloWorld/urls.py 文件代码:
from django.urls import include, re_path, path
from . import viewsurlpatterns = [path('hello/', views.hello, name='hello'),
]
为了测试方便,我们可以指定一个域名代替上面的127.0.0.1进行访问,修改hosts文件,在最后增加下面一行:
% sudo vim /etc/hosts
127.0.0.1 study.daozy.net
保存文件后,我们可以直接访问:
在看一下我们的目录结构:
$ tree
.
|-- HelloWorld
| |-- __init__.py
| |-- __init__.pyc
| |-- settings.py
| |-- settings.pyc
| |-- urls.py # url 配置
| |-- urls.pyc
| |-- views.py # 添加的视图文件
| |-- views.pyc # 编译后的视图文件
| |-- wsgi.py
| `-- wsgi.pyc
`-- manage.py
如果希望所有路径访问都指向我们的hello页面,可以如下修改urls配置:
urlpatterns = [re_path(r'^$', views.hello, name='all'),
]
3、配置系统日志
在settings.py增加配置:
# 给ADMINS发送邮件需要配置
ADMINS = (('admin_name', 'wangwei_cp@163.com'),
)
MANAGERS = ADMINSLOGGING = {'version': 1,'disable_existing_loggers': False,'filters': {'require_debug_false': {'()': 'django.utils.log.RequireDebugFalse'},'require_debug_true': {'()': 'django.utils.log.RequireDebugTrue'}},'formatters': {'main_formatter': {'datefmt': "%Y-%m-%d %H:%M:%S",'format': '%(asctime)s %(levelname)s:%(name)s:%(filename)s:%(lineno)d %(message)s',},},'handlers': {'mail_admins': {'level': 'ERROR','filters': ['require_debug_false'],'class': 'django.utils.log.AdminEmailHandler'},'console': {'level': 'DEBUG','filters': ['require_debug_true'],'class': 'logging.StreamHandler','formatter': 'main_formatter',},'sys_error': {'level': 'ERROR','class': 'logging.handlers.RotatingFileHandler','filename': 'logs/study-error.log','maxBytes': 1024 * 1024 * 5, # 5 MB'backupCount': 7,'formatter': 'main_formatter','filters': ['require_debug_false'],},'production_file': {'level': 'INFO','class': 'logging.handlers.RotatingFileHandler','filename': 'logs/study.log','maxBytes': 1024 * 1024 * 5, # 5 MB'backupCount': 7,'formatter': 'main_formatter','filters': ['require_debug_false'],},'debug_file': {'level': 'DEBUG','class': 'logging.handlers.RotatingFileHandler','filename': 'logs/study-debug.log','maxBytes': 1024 * 1024 * 5, # 5 MB'backupCount': 7,'formatter': 'main_formatter','filters': ['require_debug_true'],}},'loggers': {'django': {'handlers': ['production_file', 'console'],'level': 'INFO','propagate': True,},'django.request ': {'handlers': ['production_file', 'console'],'level': 'DEBUG','propagate': True,},'django.db.backends': {'handlers': ['production_file', 'console'],'level': 'DEBUG','propagate': True,},'': {'handlers': ['console', 'production_file', 'debug_file'],'level': "DEBUG",},}
}
这个时候启动会报错,需要提前创建好日志目录 logs,如果已经存在了,就不需要创建了。
% mkdir -p logs
测试写日志文件:
在 views.py 增加测试代码:
from django.http import HttpResponse
import logginglogger = logging.getLogger(__name__)def hello(request):logger.debug('logging to debug')logger.info('logging to info')logger.error('logging to error')return HttpResponse("Daozy极限编程")
访问页面,在logs目录下看日志:
上一课 1.2 在ubuntu上安装Django
下一课 1.4 Django Admin 管理工具
《Django开发教程》目录大纲