Day18:Django框架介绍、搭建项目

一、WEB框架

注:当遇到以下错误时:将settings.py改成TEMPLATE_DIRS =[]就OK了

1、MVC

Model  View  Controller

数据库  模板文件  业务处理

2、MTV(Django)

Model  Template  View

数据库  模板文件  业务处理

Django项目目录:

newday

  newday  #对整个程序进行配置

    __init__.py

    settings.py  #配置文件

    urls.py  #url对应关系

    wsgi.py  #遵循wsgi规范,正式环境用uwsgi+nginx跑项目

  templates

  db.sqlite3

  manage.py  #管理django程序

修改urls.py
from django.conf.urls import url
from django.contrib import admin
from django.shortcuts import HttpResponse
import time
def home(request):
    return HttpResponse('<h1>Hello</h1>')
urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^h.html',home),
]
Django代码

 (1)创建app:

python manage.py startapp app名字

在pycharm中创建app也必须执行以上命令,如下图:

(2)app目录:

migrations:数据修改表结构的记录

__init__.py:

admin.py:Django为我们提供的后台管理

apps.py:配置当前app

models.py:ORM,写指定的类 通过命令可以创建数据库结构

tests.py:单元测试

views.py:业务代码

(3)创建项目完成之后需进行一下配置

1、配置模板路径
修改 settings.py
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates')]
        ,
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]
2、配置静态目录(
在项目同级目录(app外层)新建static目录  存放css、js文件
) STATICFILES_DIRS=( os.path.join(BASE_DIR,'static'), ) 

二、创建Django项目步骤

1、创建Django工程

django-admin startproject 工程名

2、cd 工程名

python manage.py startapp cmdb

3、静态文件

project.settings.py里面写

STATICFILES_DIRS=(

  os.path.join(BASE_DIR,"static"),

)

4、模板路径

DIRS==[os.path.join(BASE_DIR,'templates'),]

5、settings.py中找到middlerware

注释csrf

6、定义路由规则

url.py中写"login"----->函数名

7、定义试图函数

app下views.py写

def func(request):

  #request.method    GET/POST

  #request.POST.get('',None)

  #return HttpResponse("字符串")

  #return render(request,"HTML模板的路径")

  #return redirect("只能填URL路径")

8、模板渲染

(1)特殊的模板语言

def func(request):

  return render(request,"index.html",{"current_user":"alex"})

index.html内容如下:

<div>{{current_user}}</div>

(2)for循环

def func(request):

  return render(request,"index.html",{'current_user':"alex",'user_list':['alex','eric']})

index.html内容如下:

{%for row in user_list%}

  <li>{row}</li>

{%endfor%}

(3)索引

def func(request):

  return render(request,"index.html",{'current_user':"alex",'user_list':['alex','eric'],'user_dict':{'k1':'v1','k2':'v2'}})

 index.html的内容如下:

<li>{{user_dict.k1}}</li>

<li>{{user_dict.k2}}</li>

(4)条件

def func(request):

  return render(request,"index.html",{'current_user':"alex",'age':18,'user_list':['alex','eric'],'user_dict':{'k1':'v1','k2':'v2'}})

index.html的内容:

{%if age%}

  <a>有年龄</a>

{%else%}

  <a>无年龄</a>

{%endif%}

posted @ 2017-07-06 09:31  licy_python  阅读(158)  评论(0编辑  收藏  举报