Django
python web框架
django 帮助
django-admin
创建django项目
django-admin startproject myblog #就会在当前目录下生成一个myblog的文件夹
目录结构
mannage.py 于项目进行交互的命令行工具集的入口
myblog{ myblog 目录 项目容器,包含项目基本配置 ,不建议修改目录名
wsgi.py python 服务器网关接口 和web服务器之间的接口
urls.py URL配置 django项目中所有页面地址都需要我们自己配置url
settings.py 非常重要的设计文件 项目核心文件
}
settings.py详情
包含数据库,web应用,时间,等各种配置
BASE_DIR 项目根目录
SECRET_KEY 安全码,项目必备
DEBUG = True 调试,不要在实际项目中打开
ALLOWED_HOSTS = [] 页面地址
INSTALLED_APPS = [] 应用工程
MIDDLEWARE = [] 工具集
ROOT_URLCONF = '' 指向urls.py的文件
TEMPLATES = [] 模板配置
WSGI_APPLICATION =
DATABASE = 数据库配置
AUTH-PASSWORD-VALIDATORS = [] 密码认证
LANGUGE_CODE = 'EN-US' 语言
TIME-ZONE = 'UTC' 时间
STATIC_URL = '' html ,css js文件目录
_init_.py 声明模块的目录
启动服务器 : python mannage.py runserver 启动服务器
创建应用:
打开命令行,进入项目中manage.py 目录
输入 python manage.py startapp blog
添加应用名到settings.py中的INSTALLED_APPS里
应用名不能和python自带的模块名冲突
应用目录结构
migrations #数据迁移模块
_init-.py
admin.py 后台管理系统配置
apps.py 当前应用的配置 django 1.9 自动生成
models.py 数据模块 使用ORM 框架 类似MVC中的MODEL 模型
test.py 自动化测试模块
views.py 执行响应的模块 代码逻辑处理的主要地点 项目大部分均在这里编写
创建第一个页面(相应)
编辑views.py 每个响应必须对应一个函数,函数必须返回一个相应
函数必须存在一个参数,一般约定为request
每一个响应(函数)对应一个URL
配置URL.py
每一个URL都以url的形式写出来
url函数放在urlpatterns列表中
url函数三个参数:url(正则),对应方法,名称
第二种URL配置
import blog.views as bv
from django.conf.urls import url ,include
在跟urls.py 中引入include
在app目录下创建urls.py文件,格式与跟urls.py相同
根urls.py中url函数第二个参数改成include('blog.url')
注: 跟urls.py正对APP配置的URL名称是该APP所有URL的中路径
第一个Templates
什么是Templates html
使用了django模板语言
步骤:
在根目录创建一个Templates的目录
在Templates下创建html文件
在views.py中返回render()
DLT初步使用
render()函数中支持一个dict类型参数
该字典是后台传递到模板的参数,键为参数名
在摸板中使用{{参数名}}来直接使用
============= 分割线 ==================
django 搭建基本的helloword
1.django-admin startproject helloword
2.在主目录下新建view视图文件
from django.http import HttpResponse #引入django下Httpresponse
def hello(request): # 定义视图入口
return HttpResponse(‘Hello Word!’)
3.配置url 在urls.py 中添加 路由
form . import view #引入当前文件下的视图模块
urlpatterns = {
url(r’^index/’,view.hello) #添加访问页的 正则 视图
}
4.python manage.py runsever
django 模板
通过django.http.HttpResponse() 输出页面,这种方式,数据和视图混在一起,不符合django的MVC思想
1.在目录下建立templates 文件夹,里面建立html文件
<h1>{{h1_text}}</h1> 模板中使用了变量
2.接下来我们需要告诉django模板文件路径修改
HelloWord/settings.py 修改templates中的dirs 为 [BASE_DIR + '/templates',]
3.我们现在修改 view.py ,增加一个新的对象,用与修改模板
-- coding: utf-8 --
#from django.http import HttpResponse
from django.shortcuts import render #引入视图渲染模块
def hello(request):
context = {}
context[‘hello’] = ‘Hello World!’
return render(request, ‘index.html’, context)
这里使用 render 来替代之前使用的 HttpResponse。render 还使用了一个字典 context 作为参数。
context 字典中元素的键值 “hello” 对应了模板中的变量 “{{ hello }}”。
这里我遇到一个坑:
‘utf8’ codec can’t decode byte 0xbb in position 0: invalid start byte 搞了半天之后发现是html文件编码问题,在demo开始的时候最好吧编码什么的都弄好