Django -- Polls - Part 1

2018-03-19  本文已影响0人  liaozb1996

投票系统

该网站包括两部分:

创建项目

$ mkdir polls_website
$ cd polls_website/
$ pipenv --three install Django
$ pipenv shell
$ django-admin startproject mysite

项目的名字不能是 django ( 和django 本身冲突) 或 test (和 python 模块冲突)

不能将项目的代码放在web服务的根目录 /var/www

目录结构

mysite/
    manage.py
    mysite/
        __init__.py
        settings.py
        urls.py
        wsgi.py

Development Server

$ cd mysite/
$ python manage.py runserver
Django

Django 自带的测试Web服务器仅适用于开发过程,不适用于生产环境

更多参数:默认监听 127.0.0.1:8000

$ python manage.py runserver 8080 # 修改监听端口
$ python manage.py runserver 0:8080 # 监听所有网卡,相当于 0.0.0.0:8080

测试服务器会自动重新载入修改的 Python 文件;但当新创建文件时,还是要重启测试服务器,才能生效

创建 APP

在项目的根目录下创建APP

$ ls
db.sqlite3  manage.py  mysite

$ python manage.py startapp polls

注意,在项目的根目录下创建APP,使 polls 和 mysite 成为两个独立的 Python Package:这样,导入时可以使用 import polls ,而不是 import mysite.polls

Project 和 APP

项目相当于整个网站,而项目由多个APP构成,每个APP实现独立的功能(博客系统,评论系统,支付系统);APP可以重用于其他项目中

创建视图

# polls/views.py

from django.http import HttpResponse

def index(request):
    return HttpResponse("Hello World -- Polls")

声明 URL

#新建 polls/urls.py -- URLconf

from django.urls import path

from . import views

urlpatterns = [
    path('', views.index, name='index'),
]

# mysite/urls.py -- root URLconf

from django.contrib import admin
from django.urls import path, include  # 导入include

urlpatterns = [
    path('polls/', include('polls.urls')),  # 指向 polls/urls.py
    path('admin/', admin.site.urls),
]
Polls

root URLconf 会把匹配到的 URL 部分去掉,并将剩余部分传给指定的 URLconf


URLconf

path() 参数

上一篇下一篇

猜你喜欢

热点阅读