(一)Django编写本地范例

简单前言一下毕设,计划是做创意设计和用户研究相关的内容,后续慢慢更出来整篇想法。为了足够酷炫,我打算做成一个绑了域名的webapp,若可能后续的测试也在上面进行。为了练手,我就从简单易学的webframework——django用起,并编写了它给出的范例程序。

工具

在进入Django官网前,我已经有了python2.7的安装以及eclipse+pydev的开发环境,前端工具有TextWrangler,但后来发现这些在Django强大的框架面前基本成为了Word一般的排版软件的作用——嗯就是用来管理和排版各自的代码,除此之外,另外需要用到的工具就是终端(Mac系统)。

安装

可以踩着Django官网的writing your first app教程来。

因为已经安装了python和pip,直接利用终端$pip install Django就行了。

然而我直接报了错:

(一)Django编写本地范例_第1张图片
安装.1

查加猜觉得是访问某个文件夹的时候权限不够,命令前加上sudo,另外按照黄字提示先更新pip到9.0.1版本。

安装.2

然后居然。。。已经安装了。检查一下版本没问题这步就ok了。

创建

发现不写东西短短一会我已经忘记怎么开始一个项目了。再去官网的教程查一下,是

1.进入终端,cd到想创建项目的目录

2.$django-admin startproject mysite

3.就在当前目录创建了一个名为mysite的文件夹

文件结构


(一)Django编写本地范例_第2张图片
创建.1

引入数据库之后还会多一个db文件,当然我只用了默认的sqlite3。

manage.py这个文件非常有意思,似乎就好像控制台一样,访问他可以调用Django框架下项目的各种命令。

印象深刻的就是在mysite目录

$python manage.py runserver

再通过本地连接访问http://127.0.0.1:8000/,就能在网页中可视化编写的web项目。然后一手开着eclipse,一手开着textwrangler,范例程序的所有更改都能一步一步边改边看。这是因为Django表示他会自动重载页面,但是教程说明一些诸如添加文件的操作不自动触发重载,这样子我们可能需要重新加载一下这句代码。

项目中的app

app在项目中可能有多个,app也可以反复在多个项目中使用。

创建app,使用的是

$python manage.py startapp app名字

范例是一个投票程序polls。

app的文件结构

polls/                                                                                                                                                

    __init__.py

    admin.py

    apps.py

    migrations/

    __init__.py

    models.py

    tests.py

    views.py

后来还会有templates和static,存放html和样式。

建立地址

通过编写mysite/urls.py建立项目页面的地址,polls/urls.py同理


(一)Django编写本地范例_第3张图片
mysite/urls.py


(一)Django编写本地范例_第4张图片
polls/urls.py

可以看出,polls除了自己的index,还有detail,results以及vote三个子页面。

建立页面

编写polls/views.py。

(一)Django编写本地范例_第5张图片
polls/views.py部分

如上是之前提到的index,detail和result三个页面的类,Choice和Question是从models文件夹传递过来的数据对象。可以看到除了其他对象,views还需要import相当多的其他需要的类。

建立数据模型

编写polls/models.py

(一)Django编写本地范例_第6张图片
polls/models.py

Question有2个属性2个方法,Choice有3个属性1个方法。依赖于Django事先建立的models,对特定问题节省了很多的工作。

激活app

手动打开mysite/setting.py。

在installed_apps = [ ]列表中手动加入'polls.apps.PollsConfig', 然后在终端重运行migrate命令来引入数据库的相应更改。

$ python manage.py migrate

在这个过程中还涉及到其他一些函数

$ python manage.py makemigrations polls      //告诉Django你对数据模型做了一些更改并希望存成migration。

$ python manage.py sqlmigrate polls 0001     //让Django推测需要的数据库模块。

初始化数据Question和Choice

这需要打开python的manage.py开发环境

$python manage.py shell

然后引入polls.app的类Choice和Question,来给他们建立一些对象。

由于这些类基于Django原来的数据模型,他本来就具有很多的方法,所以创建对象将会十分方便。

创建了对象,如果之前的几部分都编写的顺利,在本地运行的网页中会马上看到可交互的内容。

admin和tests

admin是Django用来给管理员操作的一个页面,也可以像views中的其他页面对象一样进行定制。

tests是python脚本,用来debug。范例中的都比较刻意。


最后还有templates用来存放html页面,static用来存放css样式来让Django自动搜索,值得注意的是目录要写到polls/style.css,因为和他的搜索方式有关。


--------------------------------------------->><<--------------------------------------------

第一个总结内容张的有点开,体验这么一个范例程序在劳逸结合状态差不多花了3天时间,后面还是加速为是。

你可能感兴趣的:((一)Django编写本地范例)