1. 安装virtualenv
查看是否安装了virtualenv
pip2 list
使用python2.7时,使用pip2安装virtualenv
pip2 install virtualenv
安装完virtualenv
后,进入想到生成虚拟环境的目录,使用virtualenv
创建虚拟环境目录如DjangoLibVenv
virtualenv DjangoLibVenv
启动虚拟环境
DjangoLibVenv/Scripts/activate
注:windows
下gitbash
命令需要在命令前加source
source DjangoLibVenv/Scripts/activate
此时使用pip2 list
将会发现列出的是虚拟环境中的包
。
$ pip2 list
Package Version
---------- -------
pip 10.0.1
setuptools 39.2.0
wheel 0.31.1
(venv)
2. 手动创建Django项目目录结构
安装Django
(会安装在虚拟目录下)
pip2 install django
1 新建一个 django project
注意:直接在Code目录下创建项目即可,不要新建文件夹,否则会重复。
django-admin startproject EduPro
说明:
使用
django-admin.py startproject project_name
格式即可
查看生成的目录结构
tree /f
├─Edu
│ │ manage.py
│ │
│ └─Edu
│ settings.py
│ urls.py
│ wsgi.py
│ __init__.py
│
└─venv
2 新建一个应用app
单个的app
可以直接cd
到项目目录下生成app
,为了方便管理,新加apps
文件夹,将应用放在这里。
cd EduPro
与manage.py
同级
mkdir apps
cd apps
生成应用在apps
中
python ../manage.py startapp messgae
并在目录下创建__init__.py
新建static
目录
使用`static`目录来存放网站的静态文件:js,css,图片等。
新建log
目录
使用log目录来存放网站的日志文件
新建media
目录
使用media目录存放用户上传的图片等资源。
3 启动
在虚拟环境中启动:
python manage.py runserver
#显示启动成功的信息
Starting development server at http://127.0.0.1:8000/
3. 模板
manage.py
同级别
$ mkdir templates
templates
文件夹用于存放html
文件
新建static
的静态文件夹
在tempaltes
中新建form.html
注:form.html与style.css文件参看文末附件
注意上述的样式是<link rel="stylesheet" href="/static/css/style.css">
,因此写在对应的位置。
如何如何识别这些文件夹并生效呢,seting.py
setting.py
:
templates
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [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')
]
如何访问到静态页面呢,配置urls.py
urls.py
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^form/$', getform), #增加的
]
url
函数里面查看源码如下:可以看到它除过一组正则表达式,还需要接收一个view
对象。
def url(regex, view,...):
我们需要定义一个名为getform
的view
,在apps/messages/views.py
中写代码:
def getform(request):
return render(request, 'form.html')
由于urls.py
中的getform
,我们将其写在apps/messages/views.py
中,因此需要将其引入才行。
urls.py
# -*- coding: utf-8 -*-
from apps.message.views import getform #告诉getform是来自哪里的
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^form/$', getform), #增加的
]
启动:
python manage.py runserver 0.0.0.0:8080
访问:http://localhost:8080/form/