博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python [4] Django的安装和基础运行环境简介
阅读量:5872 次
发布时间:2019-06-19

本文共 7001 字,大约阅读时间需要 23 分钟。

一、Django简介

Django是一个开放源代码的Web应用框架,由Python写成。采用了MVC的软件设计模式,即模型M,视图V和控制器C。它最初是被开发来用于管 理劳伦斯出版集团旗下的一些以新闻内容为主的网站的,即是CMS(内容管理系统)软件。并于2005年7月在BSD许可证下发布。这套框架是以比利时的吉 普赛爵士吉他手Django Reinhardt来命名的。

二、pip的应用

(1)什么是pip???

pip是一个安装和管理Python包的工具,是 easy_install 的一个替换品。

distribute是setuptools的取代(Setuptools包后期不再维护了),pip是easy_install的取代。

pip的安装需要setuptools 或者 distribute,如果你使用的是Python3.x那么就只能使用distribute因为Python3.x不支持setuptools。

(2)安装pip的两种方式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
方式1:通过yum的方式安装pip
# rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
# sed -i 's/^#//' /etc/yum.repos.d/epel.repo
# sed -i 's/mirrorlist/#mirrorlist/' /etc/yum.repos.d/epel.repo
# yum -y install python-pip
 
方式2:通过源码编译安装pip
# wget --no-check-certificate https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz
# tar xf setuptools-1.4.2.tar.gz 
# cd setuptools-1.4.2
# python setup.py install 
# easy_install --version
# cd ../
# wget --no-check-certificate https://pypi.python.org/packages/source/p/pip/pip-1.4.1.tar.gz
# tar xf pip-1.4.1.tar.gz 
# cd pip-1.4.1
# python setup.py install

(3)pip的基本使用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
安装特定版本的package,通过使用==, >=, <=, >, <来指定一个版本号。
pip安装django,并指定安装的版本
# pip install 'django==1.6.5'
 
pip卸载django
# pip uninstall django
 
pip查询包
# pip search 'django'
 
pip升级包
# pip install -U 'django'
 
列出pip安装的包
# pip freeze

三、安装Django

在linux环境下,安装Django有两种方式

(1)通过pip工具安装django

1
# pip install 'django==1.6.5'

(2)通过源码编译安装django

1
2
3
# tar xf Django-1.6.10.tar.gz 
# cd Django-1.6.10
# python setup.py install

(3)导入django模块并查看版本号,如果没有错误输出,说明django安装是成功的

1
2
[root@localhost ~]
# python -c 'import django;print (django.get_version())'
1.6.10

四、Django创建项目和应用

(1)创建一个项目

1
2
3
4
5
6
7
8
9
10
11
12
[root@localhost ~]
# django-admin.py startproject webproject
[root@localhost ~]
# tree ./
./
└── webproject     
#外层目录只是你项目的一个容器,可以任意重命名
    
├── manage.py    
#一个实用的命令行工具,可让你以各种方式与该 Django 项目进行交互
    
└── webproject 
#目录是你项目中的实际 Python 包。该目录名就是 Python 包名,通过它你可以导入它里面的任何东西
        
├── __init__.py    
#一个空文件,告诉 Python 该目录是一个 Python 包
        
├── settings.py    
#该 Django 项目的设置/配置   
        
├── urls.py        
#该 Django 项目的 URL 声明; 一份由 Django 驱动的网站“目录”  
        
└── wsgi.py        
#一个 WSGI 兼容的 Web 服务器的入口,以便运行你的项目
 
2 directories, 5 files

(2)创建应用程序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[root@localhost ~]
# cd webproject/
[root@localhost webproject]
# django-admin.py startapp blog
[root@localhost webproject]
# tree .
.
├── blog
│   ├── admin.py
│   ├── __init__.py
│   ├── models.py
│   ├── tests.py
│   └── views.py
├── manage.py
└── webproject
    
├── __init__.py
    
├── settings.py
    
├── urls.py
    
└── wsgi.py

(3)修改django配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#需要修改三处位置
[root@localhost ~]
# vim webproject/settings.py
INSTALLED_APPS = (
    
'django.contrib.admin'
,
    
'django.contrib.auth'
,
    
'django.contrib.contenttypes'
,
    
'django.contrib.sessions'
,
    
'django.contrib.messages'
,
    
'django.contrib.staticfiles'
,
    
'blog'
,     
#第一处添加blog应用
)
 
LANGUAGE_CODE = 
'zh-cn'       
#第二处修改为中文
 
TIME_ZONE = 
'Asia/Shanghai'       
#第三处修改时区

(4)配置url访问路径

1
2
3
4
5
6
7
8
9
10
[root@localhost ~]
# vim webproject/urls.py
urlpatterns = patterns(
''
,
    
# Examples:
    
# url(r'^$', 'webproject.views.home', name='home'),
    
# url(r'^blog/', include('blog.urls')),
 
    
url(r
'^admin/'
, include(admin.site.urls)),
    
url(r
'^blog$'
,
'blog.views.index'
),      
#添加一行
    
#正则匹配,仅访问到^blog目录就重定向到blog.views中的index方法,所以在views.py里面应该定义好index函数/方法
)

(5)创建视图

1
2
3
4
5
6
7
8
[root@localhost webproject]
# vim blog/views.py
from django.shortcuts 
import 
render
from django.http 
import 
HttpResponse
 
# Create your views here.
 
def index(req):
    
return 
HttpResponse(
'<h1>hello django!!!</h>'
)

(6)运行django服务

1
2
3
4
5
6
7
8
9
10
11
[root@localhost webproject]
# python manage.py runserver 0.0.0.0:80
Validating models...
 
0 errors found
February 11, 2015 - 11:58:44
Django version 1.6.10, using settings 
'webproject.settings'
Starting development server at http:
//0
.0.0.0:80/
Quit the server with CONTROL-C.
[11
/Feb/2015 
11:59:23] 
"GET / HTTP/1.1" 
404 2003
[11
/Feb/2015 
11:59:28] 
"GET /blo HTTP/1.1" 
404 2012
[11
/Feb/2015 
11:59:30] 
"GET /blog HTTP/1.1" 
200 23

五、浏览器访问

六、模板层(template)

上述是通过调用blog.views中的index方法,返回一个页面!!!

1
2
3
from django.http 
import 
HttpRespomse
def index(req):
    
return 
HttpRespose(<h1>hello django!!!<
/h1
>)

实际应用中这种方法显然不适合,那么接下来我们就聊聊HTML代码如何嵌套在Django中,有两种方式:

静态页面

方式一:

通过template加载模板,生成Context对象,存放模板所需数据,通过模板对象对数据进行渲染,然后通过HttpResponse输出。

模板文件放在应用程序下面templates目录,这个目录默认不存在需要手动创建

(1)首先查看当前所处的位置和整体项目的目录文件结构

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
[root@localhost webproject]
# pwd
/root/webproject
[root@localhost webproject]
# tree .
.
├── blog       
#应用
│?? ├── admin.py
│?? ├── admin.pyc
│?? ├── __init__.py
│?? ├── __init__.pyc
│?? ├── models.py
│?? ├── models.pyc
│?? ├── tests.py
│?? ├── views.py
│?? └── views.pyc
├── manage.py
└── webproject 
#项目
    
├── __init__.py
    
├── __init__.pyc
    
├── settings.py
    
├── settings.pyc
    
├── urls.py
    
├── urls.pyc
    
├── wsgi.py
    
└── wsgi.pyc
 
2 directories, 18 files

(2)创建我们的第二个应用www

1
2
3
[root@localhost webproject]
# django-admin.py startapp www
[root@localhost webproject]
# ls
blog  manage.py  webproject  www

(3)更新项目配置文件,发布新应用并设置url

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
[root@localhost webproject]
# vim webproject/settings.py
INSTALLED_APPS = (
    
'django.contrib.admin'
,
    
'django.contrib.auth'
,
    
'django.contrib.contenttypes'
,
    
'django.contrib.sessions'
,
    
'django.contrib.messages'
,
    
'django.contrib.staticfiles'
,
    
'blog'
,
    
'www'
,      
#添加新行
)
 
[root@localhost webproject]
# vim webproject/urls.py
urlpatterns = patterns(
''
,
    
# Examples:
    
# url(r'^$', 'webproject.views.home', name='home'),
    
# url(r'^blog/', include('blog.urls')),
 
    
url(r
'^admin/'
, include(admin.site.urls)),
    
url(r
'^blog$'
,
'blog.views.index'
),
    
url(r
'^www$'
,
'www.views.index'
),    
#添加新行
)

(4)创建模板目录并生成html文件

1
2
3
4
5
6
7
8
9
10
11
12
[root@localhost webproject]
# mkdir www/templates
[root@localhost webproject]
# cat www/templates/index.html 
<!DOCTYPE html PUBLIC 
"-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
>
<html xmlns=
"http://www.allentuns.com/1999/xhtml"
>
<
head
>
<meta http-equiv=
"Content-Type" 
content=
"text/html; charset=utf-8" 
/>
<title>My Django Page<
/title
>
<
/head
>
<body>
   
<h1>Hello Django!!!<
/h1
>
<
/body
>
<
/html
>

(5)修改应用的视图文件views

1
2
3
4
5
6
7
8
9
10
11
[root@localhost webproject]
# vim www/views.py 
from django.shortcuts 
import 
render
from django.template 
import 
loader,Context   
#导入django的两个对象loader和Context
from django.http 
import 
HttpResponse
 
# Create your views here.
 
def index(req):
    
t = loader.get_template(
'index.html'
#导入模板文件www/templates/index.html
    
c = Context({})           
#创建Context对象,用于存放提供给模板的数据(用于动态网页)
    
return 
HttpResponse(t.render(c))

(6)浏览器访问

方式二:修改方式一(只需修改第五步,其它一样)

1
2
3
4
5
6
7
8
[root@localhost webproject]
# cat www/views.py
from django.shortcuts 
import 
render
from django.shortcuts 
import 
render_to_response
 
# Create your views here.
 
def index(req):
    
return 
render_to_response(
'index.html'
,{})
     本文转自zys467754239 51CTO博客,原文链接:http://blog.51cto.com/467754239/1613612
,如需转载请自行联系原作者
你可能感兴趣的文章
修改校准申请遇到的问题
查看>>
Linux 进程中 Stop, Park, Freeze【转】
查看>>
文件缓存
查看>>
远程协助
查看>>
Scrum实施日记 - 一切从零开始
查看>>
关于存储过程实例
查看>>
配置错误定义了重复的“system.web.extensions/scripting/scriptResourceHandler” 解决办法...
查看>>
AIX 7.1 install python
查看>>
PHP盛宴——经常使用函数集锦
查看>>
重写 Ext.form.field 扩展功能
查看>>
Linux下的搜索查找命令的详解(locate)
查看>>
福利丨所有AI安全的讲座里,这可能是最实用的一场
查看>>
开发完第一版前端性能监控系统后的总结(无代码)
查看>>
Python多版本情况下四种快速进入交互式命令行的操作技巧
查看>>
MySQL查询优化
查看>>
【Redis源码分析】如何在Redis中查找大key
查看>>
关于链接文件的探讨
查看>>
android app启动过程(转)
查看>>
Linux—源码包安装
查看>>
JDK8中ArrayList的工作原理剖析
查看>>