一、下载与安装(Windows版)
下载地址:https://www.djangoproject.com/download/
或者通过命令:pip install django==1.11.2进行安装(Python3使用pip3)推荐使用此版本
安装完成后找到django-admin.exe所在的路径,将其添加到环境变量Path中,以便于今后在任何位置运行命令。
二、创建django程序
1、终端方式创建
1
2
|
django
-
admin startproject my_site
#创建一个名称为my_site的django程序,即文件夹,在哪个目录执行命令即在那个目录创建
|
执行成功之后会生成如图目录结构:
1
|
执行:python manage.py runserver
127.0
.
0.1
:
8000
|
这时,django已经在本地跑起来了...
其他常用命令:
python manage.py runserver 0.0.0.0 #不限定IP和端口
python manage.py startapp appname #在项目中创建app即不同的功能模块
python manage.py syncdb #同步数据库
python manage.py makemigrations #基于当前的model创建新的迁移策略文件
python manage.py migrate #用于执行迁移动作
python manage.py createsuperuser #创建超级管理员
注:migration是基于App的, 因此, 我们可以针对某些app不启用migration功能
2、IDE方式创建django项目
工具:pycharm
步骤:File---NewProject---Django---选择好Python解释器然后点击“create”即可搞定
三、配置
1、配置数据库
1
2
3
4
5
6
7
8
9
10
|
DATABASES
=
{
'default'
: {
'ENGINE'
:
'django.db.backends.mysql'
,
'NAME'
:
'dbname'
,
'USER'
:
'root'
,
'PASSWORD'
:
'xxx'
,
'HOST'
: '',
'PORT'
: '',
}
}
|
可在与项目名同名的目录中找到settings.py文件然后将默认的DATABASES项进行修改,Django支持多种数据库,上述为mysql配置方式,详情请参考官方文档
另外,Django默认的连接mysql的模块为MysqlDB,而python3中还没有此模块,需要使用pymysql,这时需要在__init__.py中导入pymysql并设置
1
2
|
import
pymysql
pymysql.install_as_MySQLdb()
|
2、模板配置
1
2
3
|
TEMPLATE_DIRS
=
(
os.path.join(BASE_DIR,
'templates'
),
)
|
此项一般不用设置,了解其是放置模板文件(html)的即可
3、静态文件路径
1
2
3
|
STATICFILES_DIRS
=
(
os.path.join(BASE_DIR,
'static'
),
)
|
此目录放置网站所用到的图片、媒体、样式、插件等文件
4、刚接触django,建议先注释掉settings.py文件中的以下一行,后面做以解释,不然测试时有可能出现错误
1
|
MIDDLEWARE中的:
# 'django.middleware.csrf.CsrfViewMiddleware',
|
四、路由系统
所谓路由,其实就是路径,导向,即一个URL请求来到服务器端之后,django怎么取匹配这个url并且得需要判断这个url具体应该访问到哪些资源或者定位到哪个地方,然后再由相应的地方处理此请求并且返回给客户端。
1、单一路由对应:一个url对应一个处理函数,即
1
|
url(r
'^index$'
, views.index),
|
2、基于正则的路由
1
2
|
url(r
'^index/(\d*)'
, views.index),
url(r
'^manage/(?P<name>\w*)/(?P<id>\d*)'
, views.manage),
|
3、添加额外的参数
1
|
url(r
'^manage/(?P<name>\w*)'
, views.manage,{
'id'
:
333
}),
|
4、为路由映射设置名称
1
2
|
url(r
'^home'
, views.home, name
=
'h1'
),
url(r
'^index/(\d*)'
, views.index, name
=
'h2'
),
|
设置名称之后,可以在不同的地方调用,如:
模板中使用生成URL {% url 'h2' 2012 %}
函数中使用生成URL reverse('h2', args=(2012,)) 路径:django.urls.reverse
Model中使用获取URL 自定义get_absolute_url() 方法
5、根据app对路由规则进行分类(路由分发)
1
|
url(r
'^web/'
,include(
'web.urls'
)),
|
django中的路由系统和其他语言的框架有所不同,在django中每一个请求的url都要有一条路由映射,这样才能将请求交给对一个的view中的函数去处理。其他大部分的Web框架则是对一类的url请求做一条路由映射,从而是路由系统变得简洁。
五、admin
django amdin是django提供的一个后台管理页面,改管理页面提供完善的html和css,使得你在通过Model创建完数据库表之后,就可以对数据进行增删改查,而使用django admin 则需要以下步骤:
创建后台管理员
配置url
注册和配置django admin后台管理页面
1、创建后台管理员
1
|
python manage.py createsuperuser
|
2、配置后台管理url
1
|
url(r
'^admin/'
, include(admin.site.urls))
|
3、注册和配置django admin后台管理页面
admin.py中执行如下代码:
1
2
3
4
5
|
from
django.contrib
import
admin
from
app01
import
models
admin.site.register(models.UserType)
|
另外,还可通过Bootstrap给后台管理页面添加样式,让页面好看起来
本文转自 AltBoy 51CTO博客,原文链接:http://blog.51cto.com/altboy/1942465