Django学习1

查看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: 略。

你可能感兴趣的:(Django学习1)