Django基本操作 1、创建一个django项目 django-admin startproject 项目名 2、用cd进入到项目里面,创建一个django应用 python manage.py startapp 应用名 3、启动django项目 python manage.py runserver IP 或 端口;(或者只写端口,或者两者都写) manage.py : 与django进行交互的命令脚本 project_name settings: 配置文件 urls : 路由分发,url中的path(路径)与视图函数的一一映射关系 在urls.py 文件中导入视图函数文件,写上路由关系! 示例: from app01 import views url(r‘^login/‘, views.login), 项目与应用: 一个项目有多个应用 一个应用可以被多个项目拥有 day 2===================================== 两个框架:学好哪一个都行 Django :大而全 Flask:小而精 MTV C M:model T:template V: views C: Controller(路由分配系统) 一 路由分配系统 功能:客户端访问的url的路径(path)与视图函数一一映射关系 语法格式: urlpatterns = [ url(正则表达式, views视图函数,参数,别名), ] key: 通过路径分组传参数给视图函数 无名分组: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) 请求对象: request 响应对象: httpresponse("") request.method : 请求方式----->>GET POST request.GET : 存放 get请求数据 request.POST : 存放 post数据 Httpresponse("") ------>实例字符创对象 render ------>模板的渲染 redirect ------>跳转 模板语言: 渲染变量 {{}} 渲染标签 {% %} 渲染可以渲染字符串、列表、字典、数字都行,且双大括号中只能填写一个东西,不可用逗号作为分隔写多个值 目的: 将变量嵌入到html中 注意: 1 只要带有模板语法的html都成为模板 2 render方法渲染时 把后端变量嵌入到模板中 关于redirect与render的区别: redirect走的是路径!!!!!----->>需要url里面设置映射,需要views中设置def函数,利用函数 ##重点redirect这个跳转,是跳转到一个路径下面,然后在通过路径,进行返回相应的函数!!!!!!!! render返回的是模板(页面)!!!!! day3============================================= 模板的深度查询----->>句点方法,就是用小数点,这种深度操作,只有这一种方法,记住了: 举例:在views中写这个 def index(request): name=‘yuan‘ i=17 l=[12,45,77] d={‘name‘:"egon","age":111} 然后运行,执行之后,显示出效果,如下 http://127.0.0.1:8000/index/ <h3>{{ i }}</h3> #17 <h3>{{ l }}</h3> #[12, 45, 77] <h3>{{ d }}</h3> #{‘name‘: ‘egon‘, ‘age‘: 111} <hr> <p>{{ l.0 }}</p> #12 <p>{{ l.1 }}</p> #45 <p>{{ l.2 }}</p> #77 取字典中的值,上面的标签随意用,可以用其他的,这里用p标签是为了换行用 用<p>{{ d.name }}</p> <p>{{ d.age }}</p> ★★★★★ locals----->>区域变量 当地人 局部变量 locals表示本地变量,用这个的话,无论现在页面是什么变量,都在前端里面对应它的名字,即可直接使用, 这样就可以少些很多变量了,直接代替上一行代码写的这么多大括号里面的东西,看下面对比 #return render(request,"index.html",{"name":name,"i":i,"l":l}) #return render(request,"index.html",locals()) ★★★★★ 取值操作: def index(request): name=‘yuan‘ i=17 l=[12,45,77] d={‘name‘:"egon","age":111} class Person(object): def __init__(self,name): self.name=name p1=Person(‘egon‘) p2=Person(‘阿猫‘) p3=Person(‘阿狗‘) querySet=[p1,p2,p3] return render(request,"index.html",locals()) 第一种取值操作(不推荐使用) {{ querySet.0.name }}#取到的是第一个实例对象的名字 第二种取值方式: {% for person in querySet %} #也就是for 类 in (定义的)列表 <p>{{ person.name }}</p> {% endfor %} <hr> {% if i > 100 %} <p>100</p> {% elif i > 50 %} <p>大于50小于100</p> {% else %} <p>{{ i }}</p> {% endif %} 重点说明: 注意for 和endfor; if elif 和endif,一定要首尾结合使用,否则报错;都是大括号和百分号括起来,以及注意格式! {% for 条件 %} 语句 {% endfor %} 若是有条件判断: {% if 条件 %} 语句 {% else %} 语句 {% endif %} ★★★★★ 导入静态(static)文件: 一般在应用下面放入bookstrap文件,一般设置名字为static,然后把dist文件名改成bookstrap,这个里面放bookstrap放入static中 注意: 1、导入静态文件的时候,要在settings里面进行路径拼接,使其找到bookstrap的绝对路径 2、在每个html文件的最顶端都加上 {% load staticfiles %} 这个,这个是django使用静态文件用的,否则没法用静态文件 ★★★★★ 数据库与ORM ORM 表示:对象关系映射 目的:通过python代码实现对数据库的增删改查 ★★★★★ models 是跟数据库搞关系的,可直接调用models类
时间: 2024-11-10 01:21:22