django基本设置

# 转载请留言联系

1.创建项目

django-admin startproject 项目名

示例: django-admin startproject django练习

完成后目录结构是这样的:

├────django练习(项目文件夹)

├── django练习(与项目同名的Python包)
│   ├── __init__.py(用来告诉python,当前目录是python模块
│   ├── settings.py(项目的配置文件)
│   ├── urls.py(URL根配置
│   └── wsgi.py(内置runserver命令的WSGI应用配置
└── manage.py(项目管理文件)

 

2.创建应用

进入项目的根目录。python manage.py startapp 应用名

示例:python manage.py startapp user

完成后目录结构是这样的:

django练习
├── django练习
│   ├── __init__.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
├── manage.py
└── user
    ├── admin.py
    ├── apps.py
    ├── __init__.py
    ├── migrations
    │   └── __init__.py
    ├── models.py
    ├── tests.py
    └── views.py

 

3.视图函数路由的设置

创建好基本的目录后,如果你想访问user中的views的视图函数,先要进行一些设置。

为什么要设置?以及流程是怎样的?

因为用户在浏览器输入网站,发过来请求时,django会根据正则选出相应的视图,Django会把请求信息封装为一个 HttpRequest 对象,并作为视图的第一个参数传入。所以视图函数也必须定义一个形参,用来接受HttpRequest对象。视图必须返回一个 HttpResponse 对象(或其子类对象),不能像Flask一样直接返回字符串!所以说,HttpRequest请求对象由Django创建,HttpResponse响应对象由开发人员创建。

(1)第一种方法:

在项目python包里的urls.py修改,直接指向user.views。

例如我们要访问127.0.0.1/user/index

项目python包的设置如下:

from user import views
urlpatterns = [
url(r'^admin/', admin.site.urls),  # 默认有的,别动
url(r'^user/index$',views.index)   # 添加这条 
]

user.views的代码简单演示:

from django.http import HttpResponse

def index(request):  # 一定要接受一个参数,这个参数的类型是HttpRequest对象
    return HttpResponse("hello,django")  # 返回的必须是HttpRespones

但是一般不用这种方法。

(2)第二种方法:

为了减轻项目下的urls.py文件的配置量,方便url的管理,会分别在项目的urls.py和app文件夹下的urls.py中进行配置。

例如我们也是要访问127.0.0.1/user/index

项目下的urls.py文件设置如下:

from django.conf.urls import url, include
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^user/',include('user.urls'))
]

user文件夹下的urls.py文件设置如下(注意,这个文件需要自己创建):

from django.conf.urls import url
from user import views

urlpatterns=[
url(r'^index$',views.index)
]

附:

设置流程图片示例:

设置路由时需要注意的一个点是:Django中定义路由时,通常习惯以斜线 / 结尾

  • 注意:当用户访问不以斜线/结尾的相同路径时,Django会把用户重定向到以斜线/结尾的路径上,而不会返回404不存在,例如:

    urlpatterns = [ url(r'^index/$', views.index, name='index'), ]

    用户访问 index 或者 index/ 网址,均能访问到index视图。

 

4.模板的设置

模板文件夹一般创建在项目文件夹的根目录。创建完成后,要在setting文件里面绑定他的位置,才能进行使用。

首先,在setting文件里,可以看到这么一句代码:

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

os.path.abspath就是去文件的绝对路径。os.path.dirname就是取上一级文件目录的路径。

os.path.abspath取到setting的绝对路径,两次取上一级目录的路径,就是项目的根目录。

所以,BASE_DIR就是项目的根目录。

然后看下模板的设置:

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [],

  ...

很明显,我们需要补全模板的路径。

设置:

'DIRS': [os.path.join(BASE_DIR,"templates")]

用os.path.join来拼接路径。

 

5.DEBUG的设置

在开发过程中,我们一般把setting.py中的DEBUG=True。

但是项目上线了,DEBUG必须要关闭。

但是关闭了DEBUG你会发现访问不了了。

因为你还要设置:

ALLOWED_HOSTS = []

把服务器的ip填上去。

 

6.语言与地区设置

没什么好说的。

LANGUAGE_CODE = 'zh-hans'

TIME_ZONE = 'Asia/Shanghai'

只有上海,别写北京了然后报错了。

 

7.注册应用的设置

注册应用有什么用呢?

1.要根据应用中的模型类生成表

2.要用到应用中的模板(也就是放在应用文件夹里面的模板)

如果用到这两个功能,你就需要注册应用。没用到的话,注不注册无所谓。不过还是习惯性注册一下为好。

注册应用也有两种方法:

(1)直接写应用的文件夹名。

INSTALLED_APPS === [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'user'
]

这样子设置的话,应用文件夹里面的apps.py就可以删除了。

(2)导入应用文件夹里面apps.py的类。

在我们创建应用时,会自动创建一个apps.py文件在应用文件夹里,里面存放在一个类,类存放着应用的名字(其实就是应用文件夹的名字)。所以还可以这样子设置:

INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'user.apps.UserConfig'
]

 

8.关于静态文件的设置

静态文件的文件夹一般建在项目的根目录下。

STATIC_URL = '/static/'
STATICFILES_DIRS = [os.path.join(BASE_DIR, "static_files")]  # 注意是一个列表!

STATICFILES_DIRS是设置静态文件的真实位置的。因为在项目的根目录下,所以就是BASE_DIR加上文件夹的名字。

而STATIC_URL是浏览器访问静态文件的URL前缀。例如:127.0.0.1:8000/static/abc.jpg就可以访问到静态文件夹下的abc.jpg。经常应用于html导入js文件时输入的路径。

posted @ 2018-10-29 20:19  苦瓜爆炒牛肉  阅读(245)  评论(0编辑  收藏  举报