Django基础

web框架:用于web开发,包含了各种模块和功能的集合,便于快速完成开发任务的系统。

  Django: 大而全

  Flask : 小而精

 

Django项目创建

  1 django-admin startproject project_name 创建项目

  2 python manage.py startapp appName 创建应用

  3 python manage.py runserver IP PORT 启动项目


MTV C模型

  M:model

  T:template

  V::views

  C:Controller(路由分配系统)

引入静态文件

  1 将所有静态文件放到一个static的文件夹

  2 将static文件夹放到应用下

  3 STATIC_URL = '/static/' # 别名

  STATIC_ROOT=(
  os.path.join(BASE_DIR,"appBook/static"),
  )

  4 在模板首行加上{% load staticfiles %}

  5 引入文件: {% static 具体路径 %}

一 路由分配系统

  功能:客户端访问的url的路径(path)与视图函数一一映射关系

  语法格式:

    urlpatterns = [

    url(正则表达式, views视图函数,参数,别名),

    ]


  key: 通过路径分组传参数给视图函数

  向server端传参数方式(*******):

    (1)通过数据: http://1277.0.0.1:8080/blog/?id=1200
    (2)通过路径 :http://1277.0.0.1:8080/blog/1200
    url(r"blog/(d{4})")


  无名分组url(r'^(d{4})/$', year_query),

    # year_query(request,2007)

  有名分组:url(r'^(?P<year>d{4})/(?P<month>d{2})$', year_query),

    # year_query(request,year=2010,month=12)


  name参数: url(r'^regq/', reg, name="register"),


二 视图函数(views)

views文件:

  def 函数名(request):

  逻辑控制代码

  return Httpresponse("")

请求对象: request
响应对象: httpresponse("")

request.method : 请求方式
  request.GET : 存放 get请求数据
  request.POST : 存放 post数据


Httpresponse("") ------>实例字符创对象
render ------>模板的渲染 render(request,"html",{key:value}) "html":模板(template) {key:value}: Context
redirect ------>跳转

三 模板语言


什么是模板?
  模板就是 html+逻辑代码


模板语言: 渲染变量 {{}} 渲染标签 {% %}

目的: 将变量嵌入到html中

注意:
1 只要带有模板语法的html都成为模板

2 render方法渲染时 把后端变量嵌入到模板中


关于redirect与render的区别:
redirect走的是路径
render返回的是模板



{{变量}}
{{变量|filter:参数}}


{% Tag %}



自定义过滤器和标签:

过滤器与自定义标签

  {{ i|multi:5 }}

  {% multi2 4 6 5 %}

  区别 :
  filter:可以用于if等控制语句
  simpletag: 可以接收多个参数




四 数据库与ORM(对象关系映射)


目的: 通过python代码实现对数据库的增删改查

在ORM中,对应关系
  表名-----------类名
  字段-----------类属性
  表中的一条记录-------------类实例对象

class Person():
id=..
name=..
age=....

p=Person(id=3,name="egon",age=25)
p.save()



设计表关系:

create table book(

id int primary key,
name varchar(20),
price double(5,2),



python manage.py makemigrations
python manage.py migrate


查询API:

  表.objects.all() 得到是QuerySet集合对象------ [obj1,obj2,]
  表.objects.filter(id=2) 得到是QuerySet集合对象-------[obj1,]

原文地址:https://www.cnblogs.com/lucaq/p/7544737.html