Django web框架(学习笔记)
建立项目
在cd到代码目录运行命令:python
django-admin startproject testapp
web
建立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服务器。django
更换端口、IP浏览器
默认状况下,runserver 命令会将服务器设置为监听本机内部 IP 的 8000 端口,服务器
python manage.py runserver 8080
app
能够用于更改监听端口到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模式。