• 学习笔记-Python-Django-环境搭建、路由


    # Django框架
    - 环境
    - python3.6
    - django1.8
    - 参考资料
    - [django中文文档](http://yiyibooks.cn)
    - django架站的16堂课
    # 环境搭建
    - anaconda+Pycharm
    - anaconda命令
    - conda list:显示当前环境安装的包
    - conda env list:显示安装的虚拟环境列表
    - conda create -n env_name python-3.6:创建一个虚拟环境env_name是起的虚拟环境名字
    - 激活conda下的虚拟环境
    - Linux:source activate env_name
    - Windows:activate env_name
    - pip install django==1.8
    # 后台需要的流程

        

    # 创建第一个django程序
    - 命令行启动
    - django-admin startproject tulingxueyuan
    - cd tulingxueyuan
    - django-admin startproject tulingxueyuan
    - Pycharm启动
    - 需要配置
    # 路由系统 urls
    - 创建app
    - app:负责一个具体业务或者一类具体业务的模块
    - python manage.py startapp teacher
    - 路由
    - 按照具体的请求url,导入到相应的业务处理模块的一个功能模块
    - django的信息控制中枢
    - 本质上是接受url请求和相应的处理模块的一个映射
    - 在接受url请求的匹配上使用了RE
    - URL的具体格式,如:urls.py
        - 需要关注的两点:
    1、接收的URL是什么,即如何用RE对传入的URL进行匹配
    2、已知URL匹配到哪个处理模块
    - url匹配规则
    - 从上往下一个一个比对
    - url格式是分级格式,按照级别一级一级往下比对,主要对应url包含子url的情况
    - 子url一旦被调用,则不会返回到主url(以下面地址为例,也就是不会返回到one这级)
    - '/one/two/three/'
    - 正则以r开头,表示不需要转义,注意尖号(^)表示从开头匹配,美元符号($)表示结尾匹配
    - '/one/two/three' 配对 r'^one/'
    - '/oo/one/two/three' 不配对 r'^one/'
    - '/one/two/three/' 配对 r'three/$'
    - '/oo/one/two/three/oo/' 不配对 r'three/$'
    - 如果从头开始匹配,不需要反斜杠
    - 如果从上向下都没有找到合适的匹配内容,则报错
    # 2、正常映射
    - 把某一个符合RE的URL映射到事物处理函数中去
    # 3、URL中带参数映射
    - 在事件处理代码中需要由URL传入参数,形如/myurl/param中的param
    - 参数都是字符串形式,如果需要整数等形式需要自行转换

    # 4、URL在app中处理
    - 如果所有应用URL都集中到tulingxueyuan/urls.py中,可能导致文件的臃肿
    - 可以把urls具体功能逐渐分散到每个app中
    - 在urls内从django.conf.urls导入include
    - 注意此时RE部分的写法,如写子路由的url匹配规则,注意开头不需要^尖号
    - 导入app下的url,然后include实例化app下的url
    - 使用方法
    - 确保include被导入
    - 写主路由的开头url
    - 写子路由
    - 编写views函数
    - 同样可以使用参数

    
    

    # 5、URL中的嵌套参数
    - 捕获某个参数的一部分
    - 例如URL /index/page-3,需要捕获数字3作为参数
    '''
    url(r'index/(page-(d+)/)?$', sv.myindex_1) #不太好
    url(r'index/(?:page-(?P<page_number>d+)/)?$', sv.myindex_2) #好
    '''
    - 上述例子会得到两个参数,?:表明忽略此参数

    # 6、传递额外参数
    - 参数不仅仅来自URL,还可能是我们自己定义的内容
    '''
    url(r'extrem/$', sv.extremParam, {'name':'liuying'}),
    '''
    - 附加参数同样适用于include语句,此时对include内所有都添加

    # 7、URL的反向解析
    - 防止硬编码
    - 本质上是对每一个URL进行命名
    - 以后再编写代码中使用URL的值,原则上都应该使用反向解析

    
    
    
    
  • 相关阅读:
    "用脑思考"和"用心感知"
    Oracle 分页查询
    MySQL定时执行存储过程
    java商城小程序收藏
    巴士团小程序
    微信小程序this作用域
    Flink之API的使用(3):Source的使用
    Flink之API的使用(2):Transform算子的使用
    Flink之API的使用(1):Sink的使用
    Flink之基础内容(2):DataStream的创建和使用
  • 原文地址:https://www.cnblogs.com/Cloudloong/p/10045713.html
Copyright © 2020-2023  润新知