Django初体验

Django 中的重要概念

  • urls.py
    拦截url,映射到视图函数
  • 视图 views
    存放函数的地方。分析request,按逻辑返回页面
  • 模型 models.py
    定义模型类,模型类映射到d schema。
  • 模板 templates
    模板是HTML with DTL(Django Template Language)。返回给客户的页面,是通过模板模型共同渲染出来的

Django项目目录结构

"项目名:Djangosite;应用名:app;数据类:Moment;来自《Python高效开发实战 Django Tornado Flask Twisted》"

  • Djangosite
    • manage.py
      "管理本项目"
    • Djangosite
      • init.py
      • settings.py
        "配置数据库等,更换数据库只需要在settings.py中配置即可,不需要更改model.py中的代码。INSTALLED_APPS"
      • urls.py
        "项目级路由文件"
      • wsgi.py
    • app
      • init.py
      • admin.py
        "注册后台要管理的模型类"
      • apps.py
      • models.py
        "定义「模型类」。「模型类」和「数据库表」一对一映射。"
      • views.py
        "定义「路由响应函数」(也有称视图函数)"
      • migrations
        "由manage.py维护,存放数据迁移中间文件"
        • init.py
      • tests.py
      • urls.py
        "应用级路由文件"
      • forms.py
      • templates
        "模板是包含DTL的HTML文件(HTML with Django Template Language)"
        • moments_input.html

管理项目用到的命令

- django-admin.py startproject djangosite
  "创建项目"
- python manage.py startapp app
  "创建应用"
- python manage.py runserver 0.0.0.0:8001
  "启动服务器"
- python manage.py makemigrations app
  "生成数据迁移中间文件"
- python manage.py migrate
  "执行数据迁移"
- python manage.py createsuperuser
- python manage.py changepassword username
- python manage.py shell
  "进入本项目的shell, 便于调试管理本项目"
- python manage.py collectstatic
  "收集静态文件。"
  • 一些函数
    • {% url 'name'%}
      "在模板文件中反映射网址名称->URL的方式"
    • django.urls.reverse('url_name', args=())
      "在.py模型中反映射网址名称->URL的方式,接收网址名称作为第一个参数"
    • django.shortcuts.render(requrest, 'template.html', {'model': 'value'})
      "render函数,用于渲染模板"
  • 一些名词
    • QuerySet API
  • 部署Django项目
    • Django环境搭建
      • 下载源码安装 https://www.djangoproject.com/download/
        "tar -xvf django-1.11.8.tar.gz
        cd django-1.11.8
        (sudo) python setup.py install"
      • 安装Apache2和mod_wsgi
      • 配置各种文件
        "部署文件的对应关系:sitename.conf --> wsgi.py --> settings.py --> urls.py --> views.py"
      • 检查文件夹/数据库权限
      • 激活新网站
    • 静态文件的部署

知识储备

  • Python面向对象
  • 正则表达式
  • RDB, ORM
  • 设计模式(如MVC)
  • HTTP协议
  • HTTP & CSS

你可能感兴趣的:(Django初体验)