新建项目

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',
]
```

最新文章

  1. MongoDB-集群搭建
  2. Ubuntu离线更新flashplugin
  3. Effective Java 30 Use Enums instead of int constants
  4. Learning Puppet — Resource Ordering
  5. [老老实实学WCF] 第六篇 元数据交换
  6. Mesos编译步骤及部署注意事项(Ubuntu)
  7. 自学HTML5第一天(认识HTML5的全局属性)
  8. 利用xshell密钥管理服务器远程登录+VIM dd命令操作之伤之再伤
  9. Elasticsearch&#160;Search&#160;APIs
  10. Java NIO6:选择器1——理论篇
  11. 《CSAPP》 可重定位目标文件格式
  12. HTML图片热区map area的用法(转)
  13. Replication容量和错误日志
  14. Java零基础教程(一)环境搭建
  15. 关于Cocos2d-x中节点的获取
  16. C# 后台添加Log信息
  17. 解决Linux 安装python3 .5 解决pip 安装无法成功问题ssl安全拦截无法pip安装库问题
  18. 效能检测 psp
  19. 一幅图秒懂LoadAverage(转载)
  20. 在线前端 样式和js

热门文章

  1. HDU-4513-完美队形2(Manacher变形)
  2. HDU 6043 - KazaQ&#39;s Socks | 2017 Multi-University Training Contest 1
  3. Servlet中的请求转发RequestDispatcher接口的forword与Include的区别
  4. jquery file选择器 语法
  5. 使用kombu的producer pool 向rabbitmq瞬间发送大量消息
  6. codevs 1009 产生数 2002年NOIP全国联赛普及组 x (内附解析w)
  7. Python 简易Cmd控制
  8. &#39;findstr&#39; 不是内部或外部命令,也不是可运行的程序或批处理文件
  9. wpscan
  10. CSRF实战靶场 --致谢大哥