Django学习笔记(一)Django基础
新建项目
django-admin startproject my_site #会在当前目录新建my_site目录,可自行修改目录名
django-admin startproject my_site . #会在当前目录直接建立my_site项目
项目创建完成后,接着创建app。app相当于网站的功能,每个app代表网站的一个或多个网页。
python managy.py startapp index
python managy.py startapp user
启动服务器
python manage.py runserver
##基本配置信息
```python
import os
主要通过os模块读取当前项目在系统的具体路径,在项目创建时自动生成。一般情况下无需更改。
Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(file)))
Quick-start development settings - unsuitable for production
See https://docs.djangoproject.com/en/2.2/howto/deployment/checklist/
秘钥配置,在项目创建时自动生成,主要用于重要数据的加密处理。一般情况下无需更改。
SECRET_KEY = 'o017!*o4nd8(z\(8)-n-i-%3c\)y#8r2os@j8-#-9n47i2e6q005'
调试模式。在开发调试阶段应设为True,在开发调试过程中会自动检测代码是否发生更改,一判断是否刷新重启系统。
如项目部署上线,应将其设为False,否则会泄露系统的相关信息。
DEBUG = True
域名访问权限,设置可访问的域名。当DEBUG为True且此项为空时,只允许localhost在浏览器访问。
当DEBUG为False时此项为必填项,否则程序无法启动。若想允许所有域名访问,可设ALLOWED_HOSTS = ['*']
ALLOWED_HOSTS = []
App列表,告诉Django有哪些app。如果在项目中创建了app,必须在列表中添加
INSTALLED_APPS = [
'django.contrib.admin', # 内置的后台管理系统
'django.contrib.auth', # 内置的用户认证系统
'django.contrib.contenttypes', # 记录项目中所有model元数据
'django.contrib.sessions', # 用于标识当前访问网站的用户身份,记录相关用户信息
'django.contrib.messages', # 消息提示功能
'django.contrib.staticfiles', # 查找静态资源路径(静态资源指在网站中不会改变的文件,如CSS文件、JavaScript文件、图片等)
'index', # 自己定义的app
'user',
]
###### 在中文版中,“应用程序”对应于“application”,“应用”对应于“app”。在一般的 Web 开发中,这二者几乎没什么区别,但是在 Django 中二者有一个明显的区别:application 是指一个完整的 Web 程序,而 app 是指一个可复用的包,可以“插入”其他Django 应用程序中。
<br>
##静态资源
静态资源指在网站中不会改变的文件,如CSS文件、JavaScript文件、图片等,这些文件的存放主要由settings.py配置,配置信息如下:
```python
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/2.2/howto/static-files/
STATIC_URL = '/static/'
上述配置文件将静态资源放在文件夹static,而static文件夹只能放在App里面。浏览器输入http://127.0.0.1:8000/static/01.png会显示图片。若把static文件夹放在根目录会显示404。若要放在根目录,则要在settings.py中配置STATICFILES_DIRS属性
STATICFILES_DIRS = [os.path.join(BASE_DIR,'static')]
配置好以后在浏览器中输入http://127.0.0.1:8000/static/01.png即会显示图片
模板路径
模板是一种特殊的html文档,其嵌入了一些python能识别的变量和指令,程序解析这些指令,生成HTML网页返回给用户浏览。
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates', #定义模板引擎,用于识别模板里的变量和指令。
'DIRS': [], #设置模板所在路径
'APP_DIRS': True, #是否在App里查找模板文件
'OPTIONS': { #用于填充在RequestContext中上下文的调用函数,一般不做修改
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
模板配置一般配置DIRS即可。在项目的根目录和index文件夹内分别创建templates文件夹,配置如下
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'templates'),
os.path.join(BASE_DIR, 'index/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',
],
},
},
]
##数据库配置
Django提供四种数据库引擎:
'django.db.backends.postgresql'
'django.db.backends.mysql'
'django.db.backends.sqlite3'
'django.db.backends.oracle'
默认使用Sqlite3数据库
```python
# Database
# https://docs.djangoproject.com/en/2.2/ref/settings/#databases
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
若要使用MySQL,先安装MySQL连接模块mysqlclient(直接使用pip安装即可),接着在MySQL新建数据库
SHOW DATABASES;
CREATE DATABASE my_db CHARACTER SET utf8;
然后在settings.py中进行配置:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'my_db',
'USER': 'root',
'PASSWORD': '123456',
'HOST': '127.0.0.1',
'POST': '3306',
}
}
##中间件
```python
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
```
Django学习笔记(一)Django基础的更多相关文章
- Django学习笔记之Django中间件
准备 我们在前面的课程中已经学会了给视图函数加装饰器来判断是用户是否登录,把没有登录的用户请求跳转到登录页面.我们通过给几个特定视图函数加装饰器实现了这个需求.但是以后添加的视图函数可能也需要加上装饰 ...
- Django学习笔记之Django Form表单
Form介绍 我们之前在HTML页面中利用form表单向后端提交数据时,都会写一些获取用户输入的标签并且用form标签把它们包起来. 与此同时我们在好多场景下都需要对用户的输入做校验,比如校验用户是否 ...
- Django学习笔记之Django QuerySet的方法
一般情况下,我们在写Django项目需要操作QuerySet时一些常用的方法已经满足我们日常大多数需求,比如get.filter.exclude.delete神马的感觉就已经无所不能了,但随着项目但业 ...
- Django学习笔记之Django ORM相关操作
一般操作 详细请参考官方文档 必知必会13条 <> all(): 查询所有结果 <> filter(**kwargs): 它包含了与所给筛选条件相匹配的对象 <> ...
- Django 学习笔记之五 Django中数据库中ManyToManyField及ForeignKey
1.model里面的代码: from __future__ import unicode_literalsimport django.utils.timezone as timezonefrom dj ...
- Django学习笔记之Django Form表单详解
知识预览 构建一个表单 在Django 中构建一个表单 Django Form 类详解 使用表单模板 回到顶部 构建一个表单 假设你想在你的网站上创建一个简单的表单,以获得用户的名字.你需要类似这样的 ...
- Django学习笔记之Django的url反向解析
0x00 URL反向解析和三种不同的反向解析方式 Django中提供了关于URL的映射的解决方案,可以做两个方向的使用: 1.普通解析过程:由客户端的浏览器发起一个url请求,Django根据URL解 ...
- Django学习笔记之Django ORM Aggregation聚合详解
在当今根据需求而不断调整而成的应用程序中,通常不仅需要能依常规的字段,如字母顺序或创建日期,来对项目进行排序,还需要按其他某种动态数据对项目进行排序.Djngo聚合就能满足这些要求. 以下面的Mode ...
- Django学习笔记之Django视图View
一个视图函数(类),简称视图,是一个简单的Python 函数(类),它接受Web请求并且返回Web响应. 响应可以是一张网页的HTML内容,一个重定向,一个404错误,一个XML文档,或者一张图片. ...
- Django学习笔记之Django模版系统
官方文档 常用语法 只需要记两种特殊符号: {{ }}和 {% %} 变量相关的用{{}},逻辑相关的用{%%}. 变量 {{ 变量名 }} 变量名由字母数字和下划线组成. 点(.)在模板语言中有特 ...
随机推荐
- STM32F103C8T6最小板搞定CMSIS-DAP和SWO功能
转载:http://www.stmcu.org.cn/module/forum/forum.php?mod=viewthread&tid=616081&extra=page%3D&am ...
- 【Springboot】Springboot整合Ehcache
刚刚项目上线了,记录下使用的技术...... EhCache 是一个纯Java的进程内缓存框架,具有快速.精干等特点,是Hibernate中默认的CacheProvider. Ehcache的特点 ( ...
- What is Double 11 in China? Is it a famous festival?
"1" means single, 11th, November is quadruple single!! What a tragedy for those single you ...
- 7.Java Web的数据库操作
一.环境配置(基于MySQL数据库) 1.下载MySQL数据库 2.下载安装 Navicat,破解方法去吾爱破解网站查询 第一次连接mysql时可能会出现错误,可能是因为二者对密码的编码方法不一致,可 ...
- mysql时区配置
1.修改linux系统时区:ln -sf /usr/share/zoneinfo/America/Los_Angeles /etc/localtime 修改为美洲美国洛杉矶时间 2.查看mysql时区 ...
- 微信小程序_(校园视)开发用户注册登陆
微信小程序_(校园视) 开发用户注册登陆 传送门 微信小程序_(校园视) 开发上传视频业务 传送门 微信小程序_(校园视) 开发视频的展示页-上 传送门 微信小程序_(校园视) 开发视频的展示页-下 ...
- LeetCode---Sort && Segment Tree && Greedy
307. Range Sum Query - Mutable 思路:利用线段树,注意数据结构的设计以及建树过程利用线段树,注意数据结构的设计以及建树过程 public class NumArray { ...
- springboot+dubbo+zookeeper+mybatis
参考地址:https://www.cnblogs.com/gaopengfirst/p/9555240.html 首先创建一个maven项目: 再在该父项目中创建3个module,分别是:provid ...
- Java Jsch SFTP 递归下载文件夹
Java Program For Downloading Folder Content recursively from SFTP Server How to download folder from ...
- 【免费电子书】这可能是全网最齐的程序员编程电子书PDF合集了!
[toc] 最近博主