django-安装、创建项目、创建app、渲染html输出浏览器、log配置

本文主要是介绍django-安装、创建项目、创建app、渲染html输出浏览器、log配置,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

      • 安装django
      • 创建django项目
      • 目录介绍
      • 运行Django项目
      • 实现简单的交互
      • 实现渲染输出
      • 创建app
      • 配置log日志

安装django

命令行安装django

pip3 install django==1.11.9

或者通过pycharm安装
这里写图片描述

创建django项目

命令行创建django项目

django-admin startproject **

这里写图片描述

pycharm创建django项目
这里写图片描述

目录介绍

mysite/
├── manage.py  # 管理文件
└── mysite  # 项目目录├── __init__.py├── settings.py  # 配置├── urls.py  # 路由 --> URL和函数的对应关系└── wsgi.py  # runserver命令就使用wsgiref模块做简单的web server

运行Django项目

通过命令行创建

python manage.py runserver

这里写图片描述

*命令行创建django项目*
这里写图片描述

实现简单的交互

HttpResponse
内部传入一个字符串参数,返回给浏览器

def index(request):# 业务逻辑代码return HttpResponse("OK")

在urls.py中添加如下代码:

from django.conf.urls import url
from django.contrib import admin
from django.shortcuts import HttpResponsedef index(request):return HttpResponse("hello sddjango")urlpatterns = [# url(r'^admin/', admin.site.urls),url(r'index/',index),
]

这里写图片描述

实现渲染输出

除request参数外还接受一个待渲染的模板文件和一个保存具体数据的字典参数。

将数据填充进模板文件,最后把结果返回给浏览器。(类似于我们上面用到的jinja2)

看下项目目录结构
这里写图片描述

在settings.py中

TEMPLATES = [{'BACKEND': 'django.template.backends.django.DjangoTemplates','DIRS': [os.path.join(BASE_DIR, 'templates')],'APP_DIRS': True,'OPTIONS': {'context_processors': ['django.template.context_processors.debug','django.template.context_processors.request','django.contrib.auth.context_processors.auth','django.contrib.messages.context_processors.messages',],},},
]

TEMPLATES文件夹是存放模板的路径
看下项目中的模板index.html代码

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1"><title>index</title><link rel="stylesheet" href="/static/mystyle.css">
</head>
<body><form action="/index/" method="post"><p>姓名<input type="text" name="username"></p><p>密码<input type="password" name="password"></p><p><input type="submit" value="登录"></p><p style="color: red">{{ key  }}</p>
</form></body>
</html>
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/1.11/howto/static-files/STATIC_URL = '/static/'
STATICFILES_DIRS = [os.path.join(BASE_DIR, "mystatic"),  # 静态文件存放位置
]

这里是配置静态文件的,比如js文件、css文件等
我们看下我们项目中的mystyle.css

form {border: 1px solid green;
}

我们看下urls.py代码:

from django.conf.urls import url
from django.contrib import adminfrom django.shortcuts import HttpResponse, render, redirectdef index(request):  # 所有跟请求相关的数据,都保存在request# 判断请求的类型是什么print("--->:", request)error_msg = ""if request.method == "POST":# 拿到form表单提交过来的数据name = request.POST.get("username")pwd = request.POST.get("password")print(request.POST)print(name, pwd)# 拿到用户提交的数据去数据库里面检索,能找到就表示登录成功,否则登录失败if name == "wyf" and pwd =="123456":return redirect("https://www.sogo.com")else:error_msg = "用户名密码错误"# return HttpResponse("<h1>hello world!</h1>")return render(request, "index.html", {"key": error_msg})urlpatterns = [# url(r'^admin/', admin.site.urls),url(r'index/',index),
]

接下来进行测试

这里写图片描述

这里写图片描述

创建app

do命令行创建如下:
这里写图片描述

这里写图片描述

pycharm创建方式如下:
这里写图片描述

配置log日志

# 定义一下log文件存放的位置
BASE_LOG_DIR = os.path.join(BASE_DIR, "log")
# Django项目日志配置
LOGGING = {# 固定搭配的一个版本号'version': 1,# 禁用已经存在的logger实例'disable_existing_loggers': False,# 定义了三个日志打印或保存的格式'formatters': {# 标准的'standard': {'format': '[%(asctime)s][%(threadName)s:%(thread)d][task_id:%(name)s][%(filename)s:%(lineno)d]''[%(levelname)s][%(message)s]'},# 简单的格式'simple': {'format': '[%(levelname)s][%(asctime)s][%(filename)s:%(lineno)d]%(message)s'},# 收集'collect': {'format': '[%(asctime)s]%(message)s'}},# 日志的过滤条件'filters': {# 需要debug=True'require_debug_true': {'()': 'django.utils.log.RequireDebugTrue',},},# 定义几个处理日志的方法'handlers': {# 把日志都打印到终端窗口'console': {'level': 'DEBUG','filters': ['require_debug_true'],  # 只有在Django debug为True时才在屏幕打印日志'class': 'logging.StreamHandler','formatter': 'simple'},# 默认'default': {'level': 'INFO','class': 'logging.handlers.RotatingFileHandler',  # 保存到文件,自动切'filename': os.path.join(BASE_LOG_DIR, "s8_info.log"),  # 日志文件'maxBytes': 1024 * 1024 * 50,  # 日志大小 50M'backupCount': 5,  # 日志文件个数'formatter': 'standard','encoding': 'utf-8',},# 专门记录错误日志的'error': {'level': 'ERROR','class': 'logging.handlers.RotatingFileHandler',  # 保存到文件,自动切'filename': os.path.join(BASE_LOG_DIR, "s8_err.log"),  # 日志文件'maxBytes': 1024 * 1024 * 50,  # 日志大小 50M'backupCount': 5,'formatter': 'standard','encoding': 'utf-8',},'collect': {'level': 'INFO','class': 'logging.handlers.RotatingFileHandler',  # 保存到文件,自动切'filename': os.path.join(BASE_LOG_DIR, "s8_collect.log"),'maxBytes': 1024 * 1024 * 50,  # 日志大小 50M'backupCount': 5,'formatter': 'collect','encoding': "utf-8"}},# 最后处理logger实例的配置'loggers': {# 默认的logger应用如下配置'': {'handlers': ['default', 'console', 'error'],  # 上线之后可以把'console'移除'level': 'DEBUG',},# 名为 'collect'的logger还单独处理'collect': {'handlers': ['console', 'collect'],'level': 'INFO',},'collect.son': {'handlers': ['console',],'level': 'INFO','propagate': False,}},
}

这篇关于django-安装、创建项目、创建app、渲染html输出浏览器、log配置的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1125176

相关文章

部署Vue项目到服务器后404错误的原因及解决方案

《部署Vue项目到服务器后404错误的原因及解决方案》文章介绍了Vue项目部署步骤以及404错误的解决方案,部署步骤包括构建项目、上传文件、配置Web服务器、重启Nginx和访问域名,404错误通常是... 目录一、vue项目部署步骤二、404错误原因及解决方案错误场景原因分析解决方案一、Vue项目部署步骤

Android 悬浮窗开发示例((动态权限请求 | 前台服务和通知 | 悬浮窗创建 )

《Android悬浮窗开发示例((动态权限请求|前台服务和通知|悬浮窗创建)》本文介绍了Android悬浮窗的实现效果,包括动态权限请求、前台服务和通知的使用,悬浮窗权限需要动态申请并引导... 目录一、悬浮窗 动态权限请求1、动态请求权限2、悬浮窗权限说明3、检查动态权限4、申请动态权限5、权限设置完毕后

前端原生js实现拖拽排课效果实例

《前端原生js实现拖拽排课效果实例》:本文主要介绍如何实现一个简单的课程表拖拽功能,通过HTML、CSS和JavaScript的配合,我们实现了课程项的拖拽、放置和显示功能,文中通过实例代码介绍的... 目录1. 效果展示2. 效果分析2.1 关键点2.2 实现方法3. 代码实现3.1 html部分3.2

golang内存对齐的项目实践

《golang内存对齐的项目实践》本文主要介绍了golang内存对齐的项目实践,内存对齐不仅有助于提高内存访问效率,还确保了与硬件接口的兼容性,是Go语言编程中不可忽视的重要优化手段,下面就来介绍一下... 目录一、结构体中的字段顺序与内存对齐二、内存对齐的原理与规则三、调整结构体字段顺序优化内存对齐四、内

Python安装时常见报错以及解决方案

《Python安装时常见报错以及解决方案》:本文主要介绍在安装Python、配置环境变量、使用pip以及运行Python脚本时常见的错误及其解决方案,文中介绍的非常详细,需要的朋友可以参考下... 目录一、安装 python 时常见报错及解决方案(一)安装包下载失败(二)权限不足二、配置环境变量时常见报错及

SpringBoot+MyBatis-Flex配置ProxySQL的实现步骤

《SpringBoot+MyBatis-Flex配置ProxySQL的实现步骤》本文主要介绍了SpringBoot+MyBatis-Flex配置ProxySQL的实现步骤,文中通过示例代码介绍的非常详... 目录 目标 步骤 1:确保 ProxySQL 和 mysql 主从同步已正确配置ProxySQL 的

Python创建Excel的4种方式小结

《Python创建Excel的4种方式小结》这篇文章主要为大家详细介绍了Python中创建Excel的4种常见方式,文中的示例代码简洁易懂,具有一定的参考价值,感兴趣的小伙伴可以学习一下... 目录库的安装代码1——pandas代码2——openpyxl代码3——xlsxwriterwww.cppcns.c

Spring Boot整合log4j2日志配置的详细教程

《SpringBoot整合log4j2日志配置的详细教程》:本文主要介绍SpringBoot项目中整合Log4j2日志框架的步骤和配置,包括常用日志框架的比较、配置参数介绍、Log4j2配置详解... 目录前言一、常用日志框架二、配置参数介绍1. 日志级别2. 输出形式3. 日志格式3.1 PatternL

CSS弹性布局常用设置方式

《CSS弹性布局常用设置方式》文章总结了CSS布局与样式的常用属性和技巧,包括视口单位、弹性盒子布局、浮动元素、背景和边框样式、文本和阴影效果、溢出隐藏、定位以及背景渐变等,通过这些技巧,可以实现复杂... 一、单位元素vm 1vm 为视口的1%vh 视口高的1%vmin 参照长边vmax 参照长边re

JavaWeb-WebSocket浏览器服务器双向通信方式

《JavaWeb-WebSocket浏览器服务器双向通信方式》文章介绍了WebSocket协议的工作原理和应用场景,包括与HTTP的对比,接着,详细介绍了如何在Java中使用WebSocket,包括配... 目录一、概述二、入门2.1 POM依赖2.2 编写配置类2.3 编写WebSocket服务2.4 浏