Python&Django安装

1 篇文章 0 订阅
1 篇文章 0 订阅

 

1.1.1.     说明

python安装文件可从http://www.python.org下载;

例如python-2.7.3.msi;

1.1.2.     安装

1)   运行python安装文件,例如“python-2.7.3.msi”;

2)   建议安装路径:.\\PythonServer\\PythonXXX;例如,python的版本是2.7.2,则安装路径为“.\\PythonServer\\Python272”,这样其他python相关的安装程序都可以放到.\\PythonServer下,且能看清python版本;

3)   增加系统环境变量,在path内增加python根目录路径,例如“D:\\PythonServer\\Python27”;

1.1.3.     验证

1)   进入WINDOWS命令行界面;

2)   输入“python”,则进入python的命令行,可以看到python的版本信息和命令符;

3)   输入python代码,例如“ print ‘pyton is ok’ ”,会看到python打印出一行“python is ok”,说明python安装成功;

4)   退出python命令行,输入“exit()”或按下“Ctrl+Z”皆可;

1.1.4.     卸载

1)   开始菜单->所有程序->python->卸载 即可;

2)   如果添加过操作系统环境变量,则手动删去;


 

1.2.1.     说明

DJango框架安装文件可从http://www.djangoproject.com下载;

例如Django-1.4.2.tar.gz;

1.2.2.     安装

1)   解压Django-1.4.2.tar.gz;任何路径皆可;例如“D:\\ Django”;

2)   解压后的文件夹里可以看到有一个文件“setup.py”;

3)   进入WINDOWS命令行界面,输入“cd D:\\ Django”;

4)   运行命令“python setup.pyinstall”;

5)   自动安装完毕;

6)   增加环境变量,在path内添加django的根目录路径,例如:
“D:\PythonServer\Python27\Lib\site-packages\django”以及
“D:\PythonServer\Python27\Lib\site-packages\django\bin”;

1.2.3.     验证

1)   进入WINDOWS命令行界面;

2)   输入“python”进入python命令行;

3)   输入python命令
>>import django
>>print django.VERSION
如果打印出DJango的版本信息,

例如“(1, 4, 0, 'final', 0)”,说明安装成功;

1.2.4.     卸载

1)   找到python安装目录下的子目录,
例如“D:\PythonServer\Python27\Lib\site-packages”;

2)   可以看到有一个“django”文件夹和“Django-1.4-py2.7.egg-info”文件,将该文件和该文件删除即可完成卸载;

3)   如果添加过操作系统环境变量,则手动删去;


 

2.1.1.     创建项目

1)   打开操作系统命令行界面;

2)   创建项目的django命令为“django-admin.py”;

3)   参数示例:
python django-admin.pystartproject First
表示工程目录为“First”;

4)   注意,当前系统命令行的位置即为项目路径,因此,需提前在命令行里定位到要存放项目的路径,再进行项目创建;

5)   创建好项目后,项目路下有N个文件;

2.1.2.     运行项目

1)   在系统命令行界面下定位到项目路径;

2)   项目路径下的manage.py即为该项目的管理文件;关于该项目的很多功能都通过该管理文件来启动;

3)   输入“python manage.pyrunserver”即刻启动django自带的可作为开发调试用的WEB服务器;

4)   看到提示
“Development server is running at http://127.0.0.1:8000/”
表示项目后台已经开始运行;

5)   打开浏览器里,输入http://127.0.0.1:8000/,看到“It worked!”提示,表示项目搭建成功;


 

2.2.1.     说明

django自带一个后台管理界面,但是,在访问后台管理界面前,需要先进行如下配置:

1)   配置引用库;

2)   配置数据库;

3)   配置URL;

如果使用sqlite3数据库,不需要任何其他的安装,因为从Python2.5开始,sqlite3就已经是python的标准模块,这也是pyton中一个唯一的数据库接口类模块;如果使用其他数据库例如mysql,则需要进行相应的安装;后续的示例使用sqlite3数据库;

2.2.2.     引用库

1)   打开项目下的settings.py文件;

2)   找到INSTALLED_APPS配置;

3)   增加引用库’django.contrib.admin’;配置文件中已存在,只需去掉注释;

4)   该文件里一般默认都引用了auth、contenttypes、sessions、sites等库;

2.2.3.     Sqlite3数据库

1)   打开项目下的settings.py文件;

2)   找到DATABASES配置;

3)   配置

‘ENGINE’:’django.db.backends.sqlite3’;配置文件中原有“django.db.backends.”,只需增加对应的数据库名;

4)   配置NAME为sqlite3数据库存放路径和名称,例如
D: /First\MySqlite3.db;

5)   运行命令“python manage.pysyncdb”,即自动创建后台所需的数据库,同时会提示需要创建账户,可输入yes来创建,也可输入no,自己手动创建;命令执行完毕后,可以找到NAME配置的数据库文件;

6)   如果手动创建账户,则运行命令“pythonmanage.py createsuperuser”;

2.2.4.     URL

1)   打开项目下的urls.py文件;

2)   输入代码
from django.contrib import admin
admin.autodiscover()
配置文件中已存在该代码,只需去掉注释即可;

3)   找到配置项urlpatterns,增加如下配置
url(r'^admin/', include(admin.site.urls)),
配置文件中已存在该代码,只需去掉注释即可;

4)   输入“python manage.pyrunserver”启动项目服务器;

5)   在浏览器中打开“http://127.0.0.1:8000/admin/”,即可看到后台管理界面,需要输入之前创建的账户才能进入管理;


 

2.3.1.     创建模块

目前的项目中还没有任何自己的应用模块,全是框架自动生成的东西;

可以创建自己的应用模块,在模块内创建数据表,并添加自己的页面;

1)   输入命令“python manage.py startappxxx”,其中xxx是模块的名称,例如:python manage.py startapp art

2)   此时在项目路径下多了一个名称为art的文件夹,该文件夹内保存的是与该模块相关的文件;

3)   打开项目下的settings.py文件,找到INSTALLED_APPS配置;

4)   增加针对该模块的引用’First.art’;#django 1.4版本后 直接写’art’

 

如遇到错误参考:

http://xiaozhen1900.blog.163.com/blog/static/174173257201271634537312/

2.3.2.     创建数据

1)   打开模块目录下的models.py文件,该文件是MVC中的M,负责应用的数据结构;

2)   文件中原有一句“from django.dbimport models”,现增加如下代码:

class TB1(models.Model):

         content =models.CharField(max_length = 500)

            submit_date =models.DateTimeField('auto_now_add')
表示要创建一个数据表,而该数据表的访问类名为TB1;以此方式可以创建多个数据表;

3)   输入命令“python manage.pysqlall art,可以查看自动生成的针对art模块下的所有数据表的sql创建代码,例如:
BEGIN;

CREATE TABLE "art_tb1" (
          "id"integer NOT NULL PRIMARY KEY,
          "content"varchar(100) NOT NULL,
          "submit_date"datetime NOT NULL
);
COMMIT;
从该段代码可看出,数据表属于art模块,名称为art_tb1,针对该数据表的操作MODEL名称为TB1;

4)   运行命令“python manage.pysyncdb”则自动创建出数据表;

2.3.3.     添加数据

1)   在系统命令行模式下,定位到项目路径;

2)   输入命令“python manage.pyshell”进入专门针对该项目的命令行模式;

输入如下代码来添加数据:
>>from art.models import TB1              //从art模块导入TB1 MODEL
>>from datetime import datetime          //导入框架的datetime
>>TB1.objects.create(                    //objects表示数据表里的行
          content= ‘MyContent1’,         //content字段
          submit_date=datetime.now()) //submit_date字段
>>…                                     //以此方式添加多条数据

 

 

遇到” DateTimeField received a naive datetime***”的错误,把setting.py文件里的 USE_TZ 改为False例如:USE_TZ = False

 

     接着可使用如下的代码简单的获取到数据表内的数据:
>>all_line = TB1.objects.all()           //获得TB1的所有行
>>print all_line[1].content               //打印第一行的content字段

2.3.4.     创建页面

1)   页面一般统一放在ProjectPath\Templates目录下;Templates是较常用的名称,也可自行更改;

2)   在Templates下,针对应用模块的名称再单独创建子目录;

3)   例如“ProjectPath\Templates\art”表示该目录下存放的是针对art模块的页面;

4)   这些页面就是MVC中的V,负责应用的视图;

5)   在“ProjectPath\Templates\art”下创建一个最简单的静态的html页面,但注意html文件的编码方式需要为utf8;

2.3.5.     创建映射

1)   打开模块目录下的views.py文件,该文件是MVC中的C,负责应用的逻辑处理;

2)   写入如下代码:
from django.shortcuts import render_to_response
def MyFirstView(rq):
          returnrender_to_response('art/Static1.html')

3)   函数MyFirstView只做一件事情,就是把页面跳转到art目录下的Static1.html;注意,该路径用的是相对路径,也就是会在Templates目录下寻找“art/Static1.html”,之所以能到Templates目录下寻找,就是后续的配置映射做到的;

2.3.6.     配置映射

在一个项目内创建模块,并使用该模块,全部步骤可以分为两个部分:模块MVC和项目MVC;

2.3.6.1.         模块MVC

按照之前的描述,在项目内创建一个模块时,按照MVC的思路分为三个步骤:

1)   M:即创建模块并在模块的models.py中创建数据;

2)   V:即在“项目\Templates\模块”目录下创建该模块对应的各个页面;

3)   C:即在模块的views.py中创建各个逻辑控制函数;

2.3.6.2.         项目MVC

在完成一个模块的MVC之后,还需要在项目级别按照MVC的思路进行配置:

1)   M:打开项目下的settings.py文件,找到INSTALLED_APPS配置;增加针对该模块的引用’First.art’;(或者’art’)

2)   V:打开项目下的settings.py文件,找到TEMPLATE_DIRS配置;写入模版路径:
TEMPLATE_DIRS = (
          'Templates')(或者写出绝对路径
因此,编写控制函数时,如下的代码使得系统在Templates内寻找相应文件:returnrender_to_response('art/Static1.html');

3)   C:打开项目下的urls.py文件;找到配置项urlpatterns,增加配置:
url(r'^test/', 'FirstProject.art.views.MyFirstView') 或者
url(r'^test/', 'art.views.MyFirstView');

4)   完成了模块MVC和项目MVC配置后,
在浏览器中打开“http://127.0.0.1:8000/test/”,
即可看到art/Static1.html页面;

2.3.7.     访问数据

2.3.7.1.         模块C

创建一个模块的控制器,用来生成页面数据以供页面显示;

打开模块目录下的views.py文件,添加函数如下:

#引入MODEL TB1来访问数据表art_TB1

from FirstProject.art.models import TB1

#定义函数MyDataView

def MyDataView(rq):

          #获取数据表内的所有行

          data_all_lines = TB1.objects.all()

          #将数据返回给页面

          return render_to_response(

                    #将跳转到该页面

                   'art/DataView.html',

                    #’all_lines’是页面内访问数据使用的名称

                    #data_all_lines是该函数内的变量

                   {'all_lines':data_all_lines}

          )

注意:

1)   该控制器返回给页面使用的数据类型是一个列表,名称为’all_lines’;

2)   在一个函数内,一定要注意缩进方式,如果用空格缩进,则所有行都只能用空格来缩进,如果用TAB缩进,则所有行都只能用TAB来缩进,否则会报告IndentationError错误;

2.3.7.2.         模块V

在对应的模块页面目录下创建一个UTF8编码的DataView.html文件,用来显示模块控制器所生成的数据:

<BODY>

     {% if all_lines %}

          数据内容如下:<br>

         <ul>

              {% for a_line in all_lines %}

              <li>{{ a_line.content }}</li>

              {% endfor %}

         </ul>

     {% else %}

         无数据可显示.

     {% endif %}

</BODY>

注意,在HTML代码内使用python脚本时,

1)   使用{% %}来包含python脚本;

2)   使用{{ }}来包含要显示的变量内容;

该HTML代码翻译为自然语言如下:

<BODY>

     {% 如果all_lines变量不为空 %}

          数据内容如下:<br>

         <ul>

              {% 循环处理每一行数据 %}

              <li>{{ 显示该行数据的content字段 }}</li>

              {% 结束循环 %}

         </ul>

     {% 如果all_lines变量为空 %}

         无数据可显示.

     {% 判断结束 %}

</BODY>

2.3.7.3.         项目C

1)   打开项目下的urls.py文件;

2)   找到配置项urlpatterns,增加配置:
url(r'^viewdata/', 'art.views.MyDataView'),

3)   打开浏览器访问http://127.0.0.1:8000/viewdata/;则可以看到页面显示出目前的art_TB1数据表内的每一行的content内容;

2.3.8.     编辑数据

为了实现编辑数据的功能,可以在之前“访问数据”的基础上进行升级,只需要升级模块V和模块C即可;

2.3.8.1.         模块V

在原DataView.html文件的基础上,增加一个form,包含一个编辑框来提交数据:

<form action="/viewdata/" method="post">

         <input type="text" name="new_content"/>

         <input type="submit" value="增加"/>

</form>

1)   声明该form的”method”是get还是post,从而在模块C中可以用request对象里的POST或GET属性来完成表单元素访问;

2)   该form的” action”配置表明,按下提交按钮后,浏览器将访问
http://127.0.0.1:8000/viewdata/

3)   由此可见,对于页面(模块V)来说,永远只考虑“发送请求给某个URL”,而具体该URL由哪个控制器(模块C)来处理,是由配置来决定的;

4)   有一个输入框,name为”new_content”表明在模块C中可以通过request.POST.new_content来访问该元素;

5)   该页面目前的功能为:首先显示模块C生成的数据,其次可以提交用户所输入的新的content值;

2.3.8.2.         模块C

根据目前模块V的升级,http://127.0.0.1:8000/viewdata/的请求到来时有两种情况,但这两种情况都配置给同一个模块C的函数“MyDataView”:

1)   没有请求数据,即POST中没有数据;

2)   有请求数据,即POST中包含一个新的content值;

因此,在原views.py文件的“MyDataView”函数基础上进行升级:

#因为根据content字段要创建新的一行数据内容,

#因此需要自动生成date_time字段,故需要引入该库

from datetime import datetime

#修改该控制函数

def MyDataView(rq):

          #函数入口处需要先判断是否有new_content字段:

          if rq.POST.has_key('new_content'):

                    #根据新字段在数据表中增加一行数据

                   TB1.objects.create(

                              #content字段即为用户输入的内容

                              content = rq.POST['new_content'],

                              #submit_date字段由代码生成

                              submit_date=datetime.now())

          ……原来的代码不变

此时再访问http://127.0.0.1:8000/viewdata/,可以看到:

1)   页面首先显示目前art_TB1数据表中的所有数据;

2)   接着显示一个输入框,可以输入新的content数据并提交;

3)   提交数据后,页面刷新,再次显示目前art_TB1数据表中的所有数据,可看到刚输入的新的content内容已经被加入到数据表中;

4)   如果报告403错误,则在项目配置文件settings.py中保证引用了如下两个模块:
'django.middleware.csrf.CsrfViewMiddleware',
'django.middleware.csrf.CsrfResponseMiddleware'

 

 

 

 

 

                                                  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值