一、Django简介

Django的官方站点:https://www.djangoproject.com

Django的安装方法:https://www.djangoproject.com/download/

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

Django 项目是一个python定制框架,它源自一个在线新闻 Web 站点,于 2005 年以开源的形式被释放出来。Django 框架的核心组件有:

1.用于创建模型的对象关系映射

2.为最终用户设计的完美管理界面

3.一流的 URL 设计

4.设计者友好的模板语言

5.缓存系统。

二、Django的安装

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
27
28
29
30
31
32
33
1、Django的安装
wget https://www.djangoproject.com/download/1.5.11/tarball/ -O Django-1.5.11.tar.gz
tar xf Django-1.5.11.tar.gz
cd Django-1.5.11
python setup.py install
2、验证Django是否安装成功并查看版本信息
>>> import django
>>> django.get_version()
'1.5.11'
3、如何卸载Django的安装包
python setup.py install --record files.txt         #记录安装后文件的路径
cat files.txt | xargs rm -rf                #删除这些文件
4、查看django-admin.py的命令行参数
# django-admin.py --help |tail -15
    shell
    sql
    sqlall
    sqlclear
    sqlcustom
    sqlflush
    sqlindexes
    sqlinitialdata
    sqlsequencereset
    startapp
    startproject       
    syncdb
    test
    testserver
    validate

三、第一个Django工程

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
27
28
29
30
31
32
33
34
35
36
37
38
1、创建一个新工程
# django-admin.py startproject csvt01
# cd csvt01/
# tree ./
./
└── csvt01             #手动创建的工程目录
    ├── csvt01         #工程名称
    │   ├── __init__.py     #让 Python 把该目录当成一个开发包 (即一组模块)所需的文件。
    │   ├── settings.py     #该 Django 项目的设置或配置
    │   ├── urls.py         #该 Django 项目的 URL 声明,即 Django 所支撑站点的内容列表
    │   └── wsgi.py
    └── manage.py          #一种命令行工具,可让你以多种方式与该 Django 项目进行交互。
2、启动django服务
注释:启动Django服务的时候,如果runserver后不加ip:port,则默认使用本地的回环地址+8000端口。
# python manage.py runserver
Validating models...
0 errors found
November 08, 2014 - 21:02:50
Django version 1.5.11, using settings 'csvt01.settings'
Development server is running at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
注释:启动Django服务的时候,我们可以为其制定地址和端口号。
# python manage.py runserver 0.0.0.0:8000
Validating models...
0 errors found
November 08, 2014 - 21:03:33
Django version 1.5.11, using settings 'csvt01.settings'
Development server is running at http://0.0.0.0:8000/
Quit the server with CONTROL-C.
3、浏览器访问测试
浏览器访问方式:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
4、Django日志输入信息如下:
# python manage.py runserver 0.0.0.0:8000
Validating models...
0 errors found
November 10, 2014 - 23:52:19
Django version 1.5.11, using settings 'csvt01.settings'
Development server is running at http://0.0.0.0:8000/
Quit the server with CONTROL-C.
[10/Nov/2014 23:52:42] "GET / HTTP/1.1" 200 1957
[10/Nov/2014 23:54:51] "GET / HTTP/1.1" 200 1957
[10/Nov/2014 23:54:51] "GET / HTTP/1.1" 200 1957
[10/Nov/2014 23:54:51] "GET / HTTP/1.1" 200 1957
[10/Nov/2014 23:54:52] "GET / HTTP/1.1" 200 1957
[10/Nov/2014 23:54:52] "GET / HTTP/1.1" 200 1957

四、Django的静态"Hello World!"

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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
1、新建views.py视图文件
注释:    默认此文件不存在
代码解释:调用django.http模块里面的HttpResponse模块返回数据,然后定义一个hello函数,return返回函数内容
# vim csvt01/views.py
from django.http import HttpResponse
def hello(request):
        return HttpResponse("Hello World!")
3、配置urls.py
# vim urls.py
from django.conf.urls import patterns, include, url
from csvt01.views     import hello #从csvt01下的views.py文件中导入hello的自定义函数
# Uncomment the next two lines to enable the admin:
# from django.contrib import admin
# admin.autodiscover()
urlpatterns = patterns('',
    # Examples:
    # url(r'^$', 'csvt01.views.home', name='home'),
    # url(r'^csvt01/', include('csvt01.foo.urls')),
    # Uncomment the admin/doc line below to enable admin documentation:
    # url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
    # Uncomment the next line to enable the admin:
    # url(r'^admin/', include(admin.site.urls)),
      url(r'^hello/$',hello), 
#我刚开始学习Django的时候,在这里就犯了糊涂,一直没有明白这里的url是怎么配置的和里面的含义,当我把Django Book看过后,才恍然大悟...原来是这样的。于是自已才又重新整理了这篇博文,也是希望和我一样对Dagios一样感兴趣的朋友们,少走一些弯路。
举例:
url(r'^hello/$',hello)
那么,我就针对上面这个参数进行解释:首先格式是固定的url( ***,***),其中r的作用就是对参数中存在特殊字符比如\n等,那么当做普通字符对待,不当做换行符使用。^和$表示开头和结尾是正则表达式的写法。那么两个hello是什么意思呢?当时我就困惑在这里,第一个hello额可以是任意的定制,你可以写1也可以写2 或者写成其它的任意基本都可以,其实就是一个url访问路径。后面的hello就是视图里里面定义的函数。当我们访问ip:port/hello的时候就会调用hello函数,并返回hello函数定义的内容。
)
4、重新启动django
# python manage.py runserver 0.0.0.0:8000
5、浏览器访问测试
http://ip:port/hello
浏览器输出“hello world”;表示成功。

五、Django的"静态url"

1、首先看datetime模块的使用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Python 2.6.6 (r266:84292, Jan 22 2014, 09:42:36) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-4)] on linux2
Type "help""copyright""credits" or "license" for more information.
>>> import startup
>>> import datetime
>>> help(datetime.datetime.now)    #查看帮助语法
Help on built-in function now:
now(...)
    [tz] -> new datetime with tz's local day and time
     
 >>> datetime.datetime.now()
datetime.datetime(2014, 11, 11, 14, 27, 20, 959250)
注释:那么我们就在网页上显示此函数,当用户每次刷新网页的时候,会自动返回当前时间

2、定义views和url

3、浏览器访问

五、Django的"动态url"

1、设计是这样的:当前时间+偏差量

/time/plus/1/ #显示的当前时间

/time/plus/2/ #显示的当前时间+1小时

/time/plus/3/ #显示的当前时间+2小时

/time/plus/4/ #显示的当前时间+3小时

比较简单的做法就是用python的正则表达式来实现:

那么我们就来看几个正则表达式的使用方法:

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
27
28
29
30
31
32
33
34
35
36
37
010-12345678;想必大家看到这个应该都不会感到陌生吧!座机号
对于座机号的要求:区号-分机号,这里做实验为了方便假设,区号必须是3为,中间的"-"可以不写,但是如果写了,仅能出现一次,结尾的的分机号必须是8位结束。于是就出现了下面的正则表达式。
说道正则表达式,不得不提到python的re模块。首先导入re模块。
>>> import startup
>>> import re
>>> pata1 = r"^\d{3}-?\d{8}$"    #所要匹配的正则表达式
###以下不是为正则表达式的测试
>>> re.findall(pata1,"010-12345678")    #正常匹配
['010-12345678']
>>> re.findall(pata1,"010-123456789")    #分机号多一位少一位都当做匹配失败
[]
>>> re.findall(pata1,"010-1234567")      #分机号多一位少一位都当做匹配失败
[]
>>> re.findall(pata1,"01012345678")      #中间的"-"可以不写,但是如果写了,只能出现一次
['01012345678']
>>> re.findall(pata1,"010--12345678")    #中间的"-"可以不写,但是如果写了,只能出现一次
[]
>>> re.findall(pata1,"8810-12345678")    #区号只能是3位,或多或少都当做匹配失败
[]
>>> re.findall(pata1,"10-12345678")      #区号只能是3位,或多或少都当做匹配失败
[]
>>> re.findall(pata1,"aaa-aaaaaaaa")     #只能是数字,字母也无效
[]
常用的一些正则表达式:
^    表示开头
$    表示结尾
?    表示前面的字符出现0或者更多次a?
*    表示前面的字符至少出现1次或者更多次abc*
{}   表示前面的字符可以出现多少次,{2,5}至少出现2次,最多出现5次
\d   表示任意数字[0-9] 
[]   表示范围[0-9],[a-z],[a-zA-Z]

2、配置url和views文件

3、浏览器测试访问

以上错误是由于url正则表达式的匹配失败,所以返回错误!做一些修改!

好了,这篇博文就到这里吧。期待和大家有更多的交流!

本文转自zys467754239 51CTO博客,原文链接:http://blog.51cto.com/467754239/1574936,如需转载请自行联系原作者

Django的应用部署相关推荐

  1. 解决django配合nginx部署后admin样式丢失

    解决django配合nginx部署后admin样式丢失 1.  在项目的settings.py文件里添加以下内容: STATIC_URL = '/static/' STATICFILES_DIRS = ...

  2. Python【算法中心 03】Docker部署Django搭建的Python应用流程实例(Docker离线安装配置+Django项目Docker部署)

    1.Docker离线安装配置 rpm版本安装 # 系统版本 rpm -qi centos-release Name : centos-release Version : 8.1 Release : 1 ...

  3. django+uwsgi+nginx部署

    最近线上部署运维工单系统,使用django+uwsgi+nginx部署,发现这篇文章,很详细,觉得不错,转载一下: 写了那么长时间的django,一直没跟nginx结合一下,访问的时候老是得加端口号, ...

  4. django进阶04部署上线(nginx,uwsgi,supervisor)

    原创博文地址:django进阶04部署上线(nginx,uwsgi,supervisor) django自身服务ok python manage.py runserver,验证可正常访问 uwsgi安 ...

  5. 如何将 Django 服务器单独部署到 heroku 上

    文章目录 Django server 单独部署 heroku 视频资源 部署步骤的 checklist 准备工作 创建账号 使用 pipenv / anaconda 创建python 和 Django ...

  6. 【Django】 gunicorn部署纪要

    使用Gunicorn 来部署Django应用, 没有一步一步写怎么操作,简单记录下重要的点,方面以后查阅. 主要的方式还是Nginx反向代理到Gunicorn, Gunicorn wsgi来启动Dja ...

  7. Mac下Django通过WSGI部署到Apache

    Python菜鸟一枚  为了部署这个项目忙活了半天 晕头转向的最终终于成功了  特此记录 Mac将Django通过uwsgi部署到apache详细介绍 我的Mac OSX是10.9的 Mac下自带了a ...

  8. Django零基础部署机器学习模型(将模型预测打包成API接口/网页URL)

    Django零基础部署机器学习模型 Django REST framework项目创建 框架结构了解 部署代码 Django REST framework项目创建 建立一个项目文件夹,使用VScode ...

  9. 【django云服务器部署】django+uwsgi+nginx 部署的完整流程

    本篇博客完整地记录了我从购买服务器到完成部署的全过程,需要的朋友可以参考一下我的流程,看这一篇文章就能成功部署项目啦. 写这个的本意是为备忘( 保姆级步骤),同时由于我在最开始部署项目时,没有找到一个 ...

  10. Centos django+uwsgi+nginx部署

    Centos django+uwsgi+nginx部署 安装Python CentOS 7 Linux发行版默认包含Python 2.但是,Python 2将于2020年1月1日停产.尽管一些遗留应用 ...

最新文章

  1. php 将一个字符串转换成数组,PHP将一个字符串转换成数组
  2. 太快了,太变态了:什么会影响Java中的方法调用性能?
  3. Unity3d—做一个年月日选择器(Scroll Rect拖动效果优化)— 无限滚动 + 锁定元素...
  4. pycharm导入模块不智能显示_Pycharm自动导入模块小技巧
  5. STL--map用法
  6. 详解CNN五大经典模型:Lenet,Alexnet,Googlenet,VGG,DRL
  7. [BZOJ3297][USACO2011 Open]forgot
  8. 【MIKE21】批处理依次打开模型文件运行模型
  9. 编程机器人考级证书有用吗_机器人编程有等级考试吗?
  10. html5音乐加大音量,怎么调大音乐声音 mp3音量增大器介绍【图解】
  11. Python不是内部或外部命令的(完美解决)
  12. 达索系统3DEXPERIENCE 平台应用程序组件
  13. 12 个华丽的 UI 组件,为您提供设计灵感✨
  14. 看完Alibaba“Java成长笔记”我懂了! 为什么阿里的程序员成长如此之快?
  15. linux下载安装的命令,linux安装和常用命令
  16. 基于GB/T 28181 标准的监控摄像头视频接入技术
  17. pytorch基本知识—主要轮子简介
  18. matlab的dat文件如何打开方式,dat文件如何打开?DAT文件用什么文件打开介绍
  19. IBM Tivoli
  20. 趣谈Python银杏树(初学者程序)

热门文章

  1. 网页设计师必备的35套图标(免费下载)
  2. 为什么 战舰stm32f103开发板32.768k晶振没有接电容
  3. ORACLE11g“空表”无法导出的深入分析
  4. 函数call相关[ASM]
  5. 点云合并pcl重载“+”
  6. 洛谷 P3049园林绿化 题解
  7. monkey基本命令及脚本编写
  8. Apache(httpd) 报错You don't have permission to access /on this server.
  9. QQ企业邮箱+Spring+Javamail+ActiveMQ(发送企业邮件)
  10. crontab计划任务的失败记录查找