#Django系统

-环境

  -  python3.6

  -  django1.8

  -参考资料

    - [django中文教程](http://python.usyiyi.cn)

    - django架站的16堂课

#环境搭建

-  anaconda+pycharm

-  anaconda使用

    -  conda list:显示当前环境安装的包

    -  conda env list:显示安装的虚拟环境列表

    -  conda create -n env_name python=3.75

    - 激活conda的虚拟环境

      - (Linux)source activate env_name

      - (win) activate env_name

      - pip install django==1.8

# 后台需要的流程

#创建第一个django程序

-   django-admin startproject tulingxueyuan

-   cd tulingxueyuan

-   python manage.py runserver

- pycharm 启动

  - 需要配置

中间层--->路由--->视图(Views)---Models(ORM)

# 路由系统 - urls

- 创建app  

  -  app:负责一个具体业务或者一类具体业务的模块

  -  python manage.py createapp teacher

- conda activate tl_django
- python manage.py startapp  teacher
 
#  路由系统  -  urls
- 创建app  
  - app: 负责一个具体业务或者一类具体业务的模块
  - python manage.py createapp teacher
 
- conda activate tl_django
 
- 路由
  -  按照具体的请求url,导入到相应的业务处理模块的一个功能
  -  django的信息控制中枢
  -  本质上是接受的URL和相应的处理模块的一个映射
  -  在接受URL请求的匹配上使用了RE
  -  URL的具体格式入URLS.PY中所示
- 需要关注两点:
  1、接受的URL是什么,即如何用RE对传入URL进行匹配
  2、已知URL匹配到哪个处理模块
 

- url匹配规则

  -  从上往下一个一个比对

  -  url格式是分级格式,则按照级别一级一级往下比对,主要对应url包含子url的情况

  -  子url一旦被调用,则不会返回到主url

    -  ·/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映射到事物处理函数中去

  -  举例如下:

    ···

    from showeast import views as sv

    urlpatterns = [

     url(r'^admin/', admin.site.urls),

     url(r'^normalmap/', sv.normalmap),  

    ]

    ···

# 3、URL中带参数映射

-  在事件处理代码中需要由URL传入参数,形如 /myurl/param中的param

-  参数都是字符串形式,如果需要整数等形式需要自行转换

-  通常的形式如下:

  ```

    /search/page/432 中的 432需要经常性变换,

  ```

# 4、URL在app中处理

  - 如果所有应用URL都集中    

Django系统的更多相关文章

  1. 使用dockerfile 搭建django系统(nginx+redis+mongodb+celery)

    背景 有需求需要对django系统进行docker化,以达到灵活部署和容灾.该系统基于django 2.2版本开发,数据库采用mongodb,服务器使用nginx,因系统有部分异步任务,异步任务则采用 ...

  2. Python Django系统

    本节内容 路由系统,视图函数,模板引擎,ORM操作 FBV和CBV ORM操作补充 Cookie和Session Ajax入门 1.  Django基本内容整理 1.1 路由系统 Django中路由系 ...

  3. 0004 继承django系统用户表

    1 创建基础模型 在本项目中,所有表都有两个自动产生的完全相同的字段,即创建时间和更新时间,因此,可以创建一个基础模型,让所有的表都来继承这个模型. 找到工程目录下的PublicMethod目录,创建 ...

  4. Linux 部署 Django 系统

    一:安装uwsgi pip3 install uwsgi 二:进入项目目录下,创建uwsgi.ini配置文件 [uwsgi] # 使用nginx连接时使用功能,上线时才使用socket,指定项目执行的 ...

  5. Django(博客系统):基于pycharm如何一个django工程下创建多个app

    背景:通常我们创建一个django系统时,为了把业务模块划分清楚往往会把一个独立的业务模块放到一个app中,如果多个独立的业务模块就会创建多个app,一般情况下为了更好的管理这些app,会把他们都存放 ...

  6. Django(博客系统):重写了auth.User后使用createsupperuser出错解决办法

    背景:重写django的系统User后,使用createsupperuser创建用户失败 由于项目需要扩展django默认新的auth.User系统(添加两个字段:头像.简介等字段),因此就重写了dj ...

  7. [原创]django+ldap实现单点登录(装饰器和缓存)

    前言 参考本系列之前的文章,我们已经搭建了ldap并且可以通过django来操作ldap了,剩下的就是下游系统的接入了,现在的应用场景,我是分了2个层次,第一层次是统一认证,保证各个系统通过ldap来 ...

  8. Django 应用 Buildbot

    Django作者之一 JACOB KAPLAN 所写的buildbot应用在Django系统. 全文总共分为两个部分 1,http://jacobian.org/writing/ci-is-hard/ ...

  9. 为什么选择Django?

    Web开发是Python语言应用领域的重要部分,也是工作岗位比较多的领域.如果你对基于Python的Web开发有兴趣,正打算开始学习使用Python做Web开发,或者已经是一个Web开发者有工作需要, ...

随机推荐

  1. 爬虫高性能 asyncio库 twisted库 tornado库

    一 背景知识 爬虫的本质就是一个socket客户端与服务端的通信过程,如果我们有多个url待爬取,只用一个线程且采用串行的方式执行,那只能等待爬取一个结束后才能继续下一个,效率会非常低. 需要强调的是 ...

  2. Beta冲刺4/7

    目录 摘要 团队部分 个人部分 摘要 队名:小白吃 组长博客:hjj 作业博客:beta冲刺(4/7) 团队部分 后敬甲(组长) 过去两天完成了哪些任务 整理博客 ppt模板 接下来的计划 做好机动. ...

  3. 必须了解的Object知识

    必须了解的Object知识 作为Java中所有类的根类,Object提供了很多基础的方法,我们经常会覆写它的方法,但很多时候因为不了解这些方法内在的含义以及与其他方法之间的关系而错误的覆写.下面介绍一 ...

  4. html+css+js整体布局——[防止浏览器扩大,界面排版混乱]

    1,body——>width:100% body { background-color: rgb(238, 238, 238); color: rgb(51, 51, 51); display: ...

  5. Oracle做insert或者update时未提交事务导致表锁定解决办法

    //查看被锁定表有几个 select object_name,machine,s.sid,s.serial# from v$locked_object l,dba_objects o ,v$sessi ...

  6. Python学习之MySQLdb模块

    摘要: MySQLdb模块用于操作mysql数据库.1.安装MySQLdb模块 yum install MySQL-python -y2.操作流程①.导入模块: import MySQLdb②.连接数 ...

  7. JS浅谈原始值与引用值操作

    值的操作分为三大类:复制,传递,比较 一:复制 原始值 let a = 10; let b = a; 注释:2018-7-30 17:33:49 1 原始类型的值都是存放在栈内存当中,所以他们的赋值操 ...

  8. Vs2017 typescript 开发小问题

    最近想写点ts的东西,以前用vs2015很方便,直接创建一个ts app项目就折腾了. Vs2017打开,居然发现这个项目模板不见了.   于是研究了一下,由于原来的ts app项目就是一个asp.n ...

  9. XVII Open Cup named after E.V. Pankratiev. GP of Two Capitals

    A. Artifact Guarding 选出的守卫需要满足$\max(a+b)\leq \sum a$,从小到大枚举每个值作为$\max(a+b)$,在权值线段树上找到最大的若干个$a$即可. 时间 ...

  10. 高性能平滑动画_requestAnimationFrame

    高性能平滑动画_requestAnimationFrame 在下一次重绘之前,执行一个函数