查看Django版本
$ python -m django --version
创建项目
$ django-admin startproject mysite
项目目录:
mysite/
manage.py
mysite/
__init__.py
settings.py
urls.py
wsgi.py
- 最外层mysite/: 根目录只是项目容器,名字与django无关,可随意更改
- manage.py: 命令行与Django进行交互
- 里面的mysite/: 项目的实际Python包,名字不能随便更改,涉及相关Python包导入的名字
- __init__.py: 空文件,用于声明其所在的目录为Python包
- settings.py: Django的项目配置文件
- urls.py: Django项目的url声明
- wsgi.py: 项目服务入口
开启Django开发服务器
$ python manage.py runserver [ip] [port]
默认参数 ip: 127.0.0 port: 8000
在你修改Django项目代码后,该开发服务器一般会自动加载,不需要重新启动来使代码生效,但是,有些操作(如添加文件)需要手动重启开发服务器
创建应用
$ pythin manage.py startapp appname
这将创建appname应用,及目录appname/
appname/
__init__.py
admin.py
apps.py
models.py
tests.py
views.py
migrations/
__init__.py
编写视图
编辑appname/views.py
from django.http import HttpResponse
def index(request):
return HttpResponse("hello,world")
一个函数就是一个视图。要调用视图函数,需要将视图映射到一个url。
在当前应用appname/下新建一个urls.py文件,写入:
from django.cong.urls import url
from . import views
urlpatterns = [
url(r'^$',views.index,name='index'),
]
将项目的mysite/urls.py文件包含应用的appname/urls.py文件。编辑项目的urls.py文件:
from django.conf.urls import include,url
from django.contrib import admin
urlpatterns = [
url(r'^admin/',admin.site.urls),
url(r'^appname/',include('appname.urls',namespace='appname')),
]
include()函数可以引用其他地方的URL模块
include()函数的正则表达式不具有$(结束符串匹配字符),而是尾部斜线/。每当Django遇到时include(),它会将与该点匹配的任何部分删除,并将剩余的字符串发送到包含的URL模块进行进一步处理。
正则表达式不搜索GET,POST的参数或域名。
正则表达式在第一次加载url模块时被编译。
url()有四个参数,2个必须:regex view;2个可选:kwargs name
- regex: 正则表达式
- view: 当Django匹配到正则表达式时调用的视图函数。该视图函数的第一个参数为一个HttpRequest对象,其他参数来自正则表达式捕获的参数(位置参数或关键字参数)。
- name: url声明
- kwargs: 略。