Django web框架(学习笔记)
创建项目
在cd到代码目录运行命令:
django-admin startproject testapp
创建testapp目录
同时会创建出以下文件:
testapp/
manage.py
testapp/
__init__.py
settings.py
urls.py
wsgi.py
- manage.py:用各种方式管理Django 项目的命令行工具。
- tesyapp/目录包含该项目,一个纯 Python 包。
- tesyapp/init.py:一个空文件,告诉 Python 这个目录应该被认为是一个 Python 包。
- tesyapp/settings.py:Django 项目的配置文件。
- tesyapp/urls.py:Django 项目的 URL 声明,就像你网站的“目录”.
- tesyapp/wsgi.py:作为你的项目的运行在 WSGI 兼容的Web服务器上的入口.
用于开发的简易服务器
启动了Django自带的用于开发的简易服务器,一个纯Python写的轻量级的web服务器。内置在Django中,为了能快速的开发想要的东西,无需配置生成级别的服务器。但是也只用于开发设计而非web服务器。
更换端口、IP
默认情况下,runserver 命令会将服务器设置为监听本机内部 IP 的 8000 端口,
python manage.py runserver 8080
可以用于更改监听端口到8080。
如果修改监听IP,在端口前添加IP,
python manage.py runserver 0:8000
0是0.0.0.0简写。
创建投票应用
每一个应用都是一个python包。Django自带一个工具,可以生成应用的基础目录结构。
处于manage.py所在的目录下,然后运行这行命令来创建一个应用:
python manage.py startapp polls
这将会创建一个 polls 目录,它的目录结构大致如下:
polls/
__init__.py
admin.py
apps.py
migrations/
__init__.py
models.py
tests.py
views.py
这个目录包括了投票应用的全部内容
编写第一个视图
打开polls/views.py,输入:
from django.http import HttpResponse
def index(request):
return HttpResponse("Hello, world. You're at the polls index.")
如果需要看见效果,需要url映射,创建URLconf,在polls目录中新建一个urls.py。
在urls.py输入:
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
]
在根URLconf文件中指定创建的polls.urls模块。在testapp/urls.py文件的urlpatterns列表里插入一个include(),如下:
from django.contrib import admin
from django.urls import include,path
urlpatterns = [
path('polls/',include('polls.urls')),
path('admin/',admin.site.urls),
]
验证是否正常,运行:
python mange.py runserver
浏览器访问http://127.0.0.1:8000/polls/ ,就能看见 "Hello, world. You're at the polls index."
path()参数:route
route 匹配URL准则,类似正则表达式。当Django响应一个请求时,会从urlpatterns第一项开始,按顺序依次匹配列表中的项,直到找到匹配项。
这些准则不会匹配 GET 和 POST 参数或域名。例如,URLconf在处理请求 https://www.example.com/myapp/ 时,它会尝试匹配myapp/。处理请求 https://www.example.com/myapp/?page=3 时,也只会尝试匹配 myapp/
path()参数:view
当 Django 找到了一个匹配的准则,就会调用这个特定的视图函数,并传入一个HttpRequest对象作为第一个参数,被“捕获”的参数以关键字参数的形式传入。
path()参数:kwargs
任意个关键字参数可以作为一个字典传递给目标视图函数。本教程中不会使用这一特性。
path()参数:name
为你的 URL 取名能使你在 Django 的任意地方唯一地引用它,尤其是在模板中。这个有用的特性允许你只改一个文件就能全局地修改某个URL模式。