第一个Django实战 part1

Django是一个轻量且强大的python web 模块, 能够节省大量的底层开发时间,而使得开发者专注于前端布局,这是我根据官网手册的第一次尝试性建站。

首先是Django的安装, 这里提及到了之前我没怎么关注过的概念,virtualenv的问题,暂时没管那么多。 需要上心的是,对于需要经常使用py的我来说,virtualenv的功能不可小觑。

安装很简单: pip install django

安装之后测试: python -m django --version    我的版本是1.11.6, 属于1.11。

然后寻找一个比较干净的目录,建立自己的第一个项目:

django-admin startproject myproject

得到创建好的项目目录,目录名是myproject,里面组成:

mysite : 项目容器

├── manage.py :提供多种跟项目交流的方式的命令行实用工具

└── mysite :项目的python包

    ├── __init__.py :python包的标识脚本文件

    ├── settings.py :对本项目的设置脚本文件

    ├── urls.py   :本项目中的url地址声名文件,网站的目录脚本

    └── wsgi.py :兼容WSGI的web服务器的入口点

Now’s a good time to note: don’t use this server in anything resembling a production environment. It’s intended only for use while developing. (We’re in the business of making Web frameworks, not Web servers.)

不要在任何跟产品环境相似的情况中使用该服务器(http://127.0.0.1:8000/),我们重点是构建web框架而不是服务器。

端口修改: python manage.py runserver (端口编号8080)或者(端口范围0:8080)

python代码会被自动load而不需要重启server,但有些诸如添加文件等操作就需要重启server。

有必要分清楚一下project跟app的关系: 一个project可以有多个app, 一个app也可以被多个project调用。

上面的过程首先由django产生了一个web框架基本的目录和元件组成,而后在local服务器上运行来起来,下面的过程是编码产生app并且对app进行优化和完善。

确保工作目录在容器内,而在mysite的包外。

python manage.py startapp polls

执行后目录树变为: 文件介绍先暂时放一下。

├── db.sqlite3

├── manage.py

├── mysite

│   ├── __init__.py

│   ├── __init__.pyc

│   ├── settings.py

│   ├── settings.pyc

│   ├── urls.py

│   ├── urls.pyc

│   ├── wsgi.py

│   └── wsgi.pyc

└── polls  : polls app的python模块所在目录,不能修改

    ├── __init__.py : 标识

    ├── admin.py : 

    ├── apps.py

    ├── migrations

    │   └── __init__.py

    ├── models.py

    ├── tests.py

    └── views.py : 页面? 

进行第一个view的编写:

在views.py 中添加

from django.http import HttpResponse

def index(request):

    return HttpResponse("Hello, world. You're at the polls index.")

对于每一个view,都需要有个url以供浏览器寻找和调用,所以下一步配置APP中的url

touch ./polls/urls.py

在urls.py中添加

from django.conf.urls import url

from . import views

urlpatterns = [

    url(r'^$', views.index, name='index'),

]

之后需要从项目中创建到app中url的指向url:

The next step is to point the root URLconf at the polls.urls module. In mysite/urls.py, add an import for django.conf.urls.include and insert an include() in the urlpatterns list,

往mysit/urls.py中添加

from django.conf.urls import include, url

from django.contrib import admin

urlpatterns = [

    url(r'^polls/', include('polls.urls')),

    url(r'^admin/', admin.site.urls),

]

这个时候要进行预览的话,应在地址后面加上/polls。(这里原来是这样)

搞完以上的这些之后, 投票APP的外壳就有了, 而且也跟本次项目链接起来了,下面就是对应用内元件进行填充。

在这里应该熟悉一下mysite/settings.py 里的内容, INSTALLED_APP 里已经包括了几个自带的APP。-先挖坑。

现在为polls创建两个元件,称之为model, django自带model类,应用内的类继承自models:这里的类是指数据+区域

from django.db import models

class Question(models.Model):

    question_text = models.CharField(max_length=200)

    pub_date = models.DateTimeField('date published')

class Choice(models.Model):

    question = models.ForeignKey(Question, on_delete=models.CASCADE)

    choice_text = models.CharField(max_length=200)

    votes = models.IntegerField(default=0)

上面的代码继承自django数据库中的models类,创建了两个类,每个类中有两个model,也就是两种数据+区域,其

猜你喜欢

转载自blog.csdn.net/itmight/article/details/81417351