新建项目

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基础的更多相关文章

  1. Django学习笔记之Django中间件

    准备 我们在前面的课程中已经学会了给视图函数加装饰器来判断是用户是否登录,把没有登录的用户请求跳转到登录页面.我们通过给几个特定视图函数加装饰器实现了这个需求.但是以后添加的视图函数可能也需要加上装饰 ...

  2. Django学习笔记之Django Form表单

    Form介绍 我们之前在HTML页面中利用form表单向后端提交数据时,都会写一些获取用户输入的标签并且用form标签把它们包起来. 与此同时我们在好多场景下都需要对用户的输入做校验,比如校验用户是否 ...

  3. Django学习笔记之Django QuerySet的方法

    一般情况下,我们在写Django项目需要操作QuerySet时一些常用的方法已经满足我们日常大多数需求,比如get.filter.exclude.delete神马的感觉就已经无所不能了,但随着项目但业 ...

  4. Django学习笔记之Django ORM相关操作

    一般操作 详细请参考官方文档 必知必会13条 <> all(): 查询所有结果 <> filter(**kwargs): 它包含了与所给筛选条件相匹配的对象 <> ...

  5. Django 学习笔记之五 Django中数据库中ManyToManyField及ForeignKey

    1.model里面的代码: from __future__ import unicode_literalsimport django.utils.timezone as timezonefrom dj ...

  6. Django学习笔记之Django Form表单详解

    知识预览 构建一个表单 在Django 中构建一个表单 Django Form 类详解 使用表单模板 回到顶部 构建一个表单 假设你想在你的网站上创建一个简单的表单,以获得用户的名字.你需要类似这样的 ...

  7. Django学习笔记之Django的url反向解析

    0x00 URL反向解析和三种不同的反向解析方式 Django中提供了关于URL的映射的解决方案,可以做两个方向的使用: 1.普通解析过程:由客户端的浏览器发起一个url请求,Django根据URL解 ...

  8. Django学习笔记之Django ORM Aggregation聚合详解

    在当今根据需求而不断调整而成的应用程序中,通常不仅需要能依常规的字段,如字母顺序或创建日期,来对项目进行排序,还需要按其他某种动态数据对项目进行排序.Djngo聚合就能满足这些要求. 以下面的Mode ...

  9. Django学习笔记之Django视图View

    一个视图函数(类),简称视图,是一个简单的Python 函数(类),它接受Web请求并且返回Web响应. 响应可以是一张网页的HTML内容,一个重定向,一个404错误,一个XML文档,或者一张图片. ...

  10. Django学习笔记之Django模版系统

    官方文档 常用语法 只需要记两种特殊符号: {{  }}和 {% %} 变量相关的用{{}},逻辑相关的用{%%}. 变量 {{ 变量名 }} 变量名由字母数字和下划线组成. 点(.)在模板语言中有特 ...

随机推荐

  1. Prism框架实战——订餐软件

    参考B站刘铁猛老师的订餐软件https://www.bilibili.com/video/av29782724?from=search&seid=6787438911056306128 环境: ...

  2. jmeter常见问题小结

    1,报500,查看信息头中的Content-Type 2,https的端口号是443 3,同一个线程组中,不同请求分别用到的字段都可以直接写在‘HTTP信息头管理器’中 4,Debug Sampler ...

  3. html5原生js拖拽上传(golang版)

    一次只能传一个文件,需在main.go同级目录中建一个upload文件夹 main.go package main import ( "fmt" "io" &q ...

  4. JavaScript 实现文件下载并重命名

    第一种是HTML官网中的方法<a href="/images/liang.jpg" download="文件名称">HTML5 中 a 标签提供了一 ...

  5. OSI7层模型

    为什么来写一个osi7层模型的随便呐? 因为自己对osi模型一点不熟悉 只知道里面的协议 要学渗透必先学习osi 这是一个osi7层的大体图片 接下来我们会对每一层进行详细的解答 这是五层模型 接下来 ...

  6. vue-cli脚手架构建了项目,想去除Eslint验证,如何设置?

    vue-cli脚手架构建了项目,想去除Eslint验证,如何设置? 在webpack.base.conf.js里面删掉下面: preLoaders: [ { test: /\.vue$/, loade ...

  7. 软工第04组 Alpha冲刺(1/6)

    队名:new game 组长博客:戳 作业博客:戳 组员情况 鲍子涵(队长) 过去一段时间对项目的精度和分工进行了更加细致的划分,并初步进行了GamePlay逻辑部分的框架设计 GitHub签入记录: ...

  8. LeetCode 80. 删除排序数组中的重复项 II(Remove Duplicates from Sorted Array II)

    题目描述 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成 ...

  9. 【免费电子书】这可能是全网最齐的程序员编程电子书PDF合集了!

    [toc] 最近博主

  10. springboot非web项目

    使用CommandRunner @SpringBootApplication public class CrmApplication implements ApplicationRunner { @A ...