工程目录
mysite
- mysite # 对整个程序进行配置
- init
- settings # 配置文件
- url # URL对应关系
- wsgi #
- manage.py # 管理django程序
1.settings.py
加密加盐;缓存;模板等配置都是在这里面做的。
2.wsgi.py
下面全部都是遵循wsgi的模块,都是用来写socket的模块,它们都遵循wsgi这个规则。
这个规则本质上都是帮助创建socket。
django不负责做这件事,django依赖于别人的socket,在这个wsgi.py
文件中有设置。
可以在wsgi.py
中去替换wsgi,发布程序一般使用uwsgi(一个第三方模块)。 一般使用uwsgi + nginx
图片.png
import os
from django.core.wsgi import get_wsgi_application
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings")
application = get_wsgi_application()
在django默认内部就是使用的:wsgiref
这个模块。
3.manage.py
管理django程序的。
python manage.py startapp xxx
python manage.py makemigrations
python manage.py migrate
工程目录的 project 和 app之间的关系
图片.png
上面每个模块看做APP,整个工程就是Project。
图片.png
业务代码,放到每一个app下面:
图片.png
APP目录
图片.png
app:
- migrations # 数据修改表结构。(django自动创建的)
- __init__ # python3中可以没有(Python2中必须有,作用是把这个目录作为一个python包)
- admin # django为我们提供的后台管理
- apps # 对当前app做配置
- models # 创建数据库表的。 ORM,写指定的类。 通过命令创建数据库结构。
- tests # 单元测试
- views # 业务逻辑代码
结构中,只有views
是写逻辑的,其他上面的都是做配置的。
配置templates目录和static目录, media目录
templates目录是放html静态模板的,static目录是放css和js这些静态文件的。
都是在settings.py
中配置,注意配置之后如果服务器出现问题,就删除掉settings.pyc
然后重启服务器。
目录:
图片.png
配置templates目录:
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',
],
},
},
]
配置static目录:
STATIC_URL = '/static/'
STATICFILES_DIRS = (
os.path.join(BASE_DIR, 'static'), # 注意一定要写逗号
)
配置media目录:
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
总结:以后创建了项目之后马上应该做的:
1)创建templates和static包
2)配置模板的路径(就是templates)
3)配置静态目录(static目录)
配置完成之后,以后使用js还是css还是image直接可以:
<link rel="stylesheet" href="/static/css/commons.css" />
可用:
{% load static %}
<link rel="stylesheet" href="{{ static 'css/commons.css' }}" >
业务一般都是写在app下的views.py。