新建项目后,需要做一些调整
    settings .py

    1. ALLOWED_HOSTS = ['*']
    2. # 时区部分
    3. LANGUAGE_CODE = 'zh-hans'
    4. TIME_ZONE = 'Asia/Shanghai'
    5. USE_I18N = True
    6. USE_L10N = True
    7. USE_TZ = False
    8. # 静态文件设置
    9. STATIC_URL = '/static/'
    10. STATIC_ROOT = os.path.join(BASE_DIR, "/static/")
    11. STATICFILES_DIRS = [
    12. os.path.join(BASE_DIR, "static"),
    13. ]
    14. # 媒体文件设置
    15. MEDIA_URL = '/media/'
    16. MEDIA_ROOT = os.path.join(BASE_DIR, "media").replace("\\", "/")
    17. # 日志设置
    18. #########################
    19. ## Django Logging BEGIN
    20. #########################
    21. # LOGGING_DIR 日志文件存放目录
    22. import logging
    23. LOGGING = {
    24. 'version': 1, # 指明版本,目前就只有一个版本
    25. 'disable_existing_loggers': False, # 表示是否禁用所有的已经存在的日志配置
    26. 'formatters': { # 格式器
    27. 'verbose': { # 详细
    28. 'format': '%(levelname)s %(asctime)s %(module)s %(process)d %(thread)d %(message)s'
    29. },
    30. 'standard': { # 标准
    31. 'format': '[%(asctime)s] [%(levelname)s] %(message)s'
    32. },
    33. 'simple': { # 简单格式输出
    34. 'format': '%(levelname)s %(module)s %(lineno)d %(message)s'
    35. },
    36. },
    37. 'filters': { # 过滤器:可以对日志进行输出时的过滤用的
    38. 'require_debug_true': { # 在debug=True下产生的一些日志信息,要不要记录日志,需要的话就在handlers中加上这个过滤器,不需要就不加
    39. '()': 'django.utils.log.RequireDebugTrue',
    40. },
    41. 'require_debug_false': { # 和上面相反
    42. '()': 'django.utils.log.RequireDebugFalse',
    43. },
    44. },
    45. # handlers:用来定义具体处理日志的方式,可以定义多种,"default"就是默认方式,"console"就是打印到控制台方式。file是写入到文件的方式,注意使用的class不同
    46. 'handlers': { # 处理器,在这里定义了两个个处理器
    47. # 'console': {
    48. # 'level': 'DEBUG',
    49. # 'class': 'logging.StreamHandler',
    50. # # 'stream': 'ext://sys.stdout',
    51. # # 文件重定向的配置,将打印到控制台的信息都重定向出去 python manage.py runserver >> /home/aea/log/test.log
    52. # 'stream': open(os.path.join(BASE_DIR, 'logs/debug.log'), 'a'), # 虽然成功了,但是并没有将所有内容全部写入文件,目前还不清楚为什么
    53. # 'formatter': 'standard' # 制定输出的格式,注意 在上面的formatters配置里面选择一个,否则会报错
    54. # },
    55. 'console': { # 在控制台输出时的实例
    56. 'level': 'INFO', # 日志等级;debug是最低等级,那么只要比它高等级的信息都会被记录
    57. 'filters': ['require_debug_true'], # 在debug=True下才会打印在控制台
    58. 'class': 'logging.StreamHandler', # 使用的python的logging模块中的StreamHandler来进行输出
    59. 'formatter': 'simple'
    60. },
    61. 'file': {
    62. 'level': 'INFO',
    63. 'class': 'logging.FileHandler',
    64. 'filename': os.path.join(BASE_DIR, 'logs/info.log'), # 这是将普通日志写入到日志文件中的方法,
    65. 'formatter': 'standard',
    66. # 设置默认编码,否则打印出来汉字乱码
    67. 'encoding': 'utf-8',
    68. },
    69. # 'default': {
    70. # 'level':'DEBUG',
    71. # 'class':'logging.handlers.RotatingFileHandler',
    72. # 'filename': os.path.dirname(os.path.dirname(os.path.realpath(__file__)))+'/log/all_log.txt', #日志输出文件
    73. # 'maxBytes': 1024*1024*5, #文件大小
    74. # 'backupCount': 5, #备份份数
    75. # 'formatter':'standard', #使用哪种formatters日志格式
    76. # },
    77. # 上面两种写入日志的方法是有区别的,前者是将控制台下输出的内容全部写入到文件中,这样做的好处就是我们在views代码中的所有print也会写在对应的位置
    78. # 第二种方法就是将系统内定的内容写入到文件,具体就是请求的地址、错误信息等,小伙伴也可以都使用一下然后查看两个文件的异同。
    79. },
    80. 'loggers': { # log记录器,配置之后就会对应的输出日志
    81. # django 表示就是django本身默认的控制台输出,就是原本在控制台里面输出的内容,在这里的handlers里的file表示写入到上面配置的file-/home/aea/log/jwt_test.log文件里面
    82. # 在这里的handlers里的console表示写入到上面配置的console-/home/aea/log/test.log文件里面
    83. 'django': {
    84. 'handlers': ['console', 'file'],
    85. # 这里直接输出到控制台只是请求的路由等系统console,当使用重定向之后会把所有内容输出到log日志
    86. 'level': 'DEBUG',
    87. 'propagate': True,
    88. },
    89. 'django.request ': {
    90. 'handlers': ['console', 'file'],
    91. 'level': 'DEBUG', # 配合上面的将警告log写入到另外一个文件
    92. 'propagate': True,
    93. },
    94. 'django.db.backends': {
    95. 'handlers': ['file'], # 指定file handler处理器,表示只写入到文件
    96. 'level': 'DEBUG',
    97. 'propagate': True,
    98. },
    99. },
    100. }
    101. logger = logging.getLogger("django")
    102. #########################
    103. ## Django Logging END
    104. #########################

    url.py

    1. # 先引入settings 位置
    2. url(r'^media/(?P<path>.*)', serve, {'document_root': settings.MEDIA_ROOT}), # 用于上传图片文件,也可以上传其他文件word,ppt等。
    3. url('static/<path:path>', serve, {'document_root': settings.STATIC_ROOT}), # 用于加载静态文件