• Django 入门


    Django 入门

    Django是一个开放源代码的Web应用框架,由Python写成。采用了MVC的软件设计模型,即模型M,视图V和控制器C。它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的。并于2005年7月在BSD许可证下发布。这套框架是以比利时的吉普赛爵士吉他手Django Reinhardt来命名的。

    Django的MTV模式本质上和MVC是一样的,也是为了各组件间保持松耦合关系,只是定义上有些许不同,Django的MTV分别是值:
    • M 代表模型(Model):负责业务对象和数据库的关系映射(ORM)。
    • T 代表模板 (Template):负责如何把页面展示给用户(html)。
    • V 代表视图(View):负责业务逻辑,并在适当时候调用Model和Template
    除了以上三层之外,还需要一个URL分发器,它的作用是将一个个URL的页面请求分发给不同的View处理,View再调用相应的Model和Template

    1、安装 Django

    pip3 install django

    测试 Django 安装

    Python 3.5.0 (default, Sep 23 2015, 04:41:38) 
    [GCC 4.2.1 Compatible Apple LLVM 7.0.0 (clang-700.0.72)] on darwin
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import django
    >>> django.VERSION
    (1, 10, 3, 'final', 0)
    >>> 

    2、django 的常用命令

    # 创建 django 工程项目
    django-admin.py startproject projectname  # projectname 为自定义的项目名称
    
    # 创建 django 的 app
    python3.5 manage.py startapp appname  # appname 为自定义的 app 名称
    django-admin.py startapp appname
    
    # 同步数据库
    python3.5 manage.py syncdb
    python3.5 manage.py makemigration
    python3.5 manage.py migrate
    
    # 启动调试模式
    python3.5 manage.py runserver [ip:port]  # ip:port 默认为 127.0.0.1:8000,也可以自定义
    
    # 清空数据库
    python3.5 manage.py flush
    
    # 创建 django admin 的超级管理员
    python3.5 manage.py createsuperuser
    
    # 修改管理员密码
    python3.5 manage.py changepassword username
    
    # 导入导出数据库
    python3.5 manage.py dumpdata appname > appname.json  # 导出
    python3.5 manage.py loaddata appname.json  # 导入
    
    # 进入数据
    python3.5 manage.py dbshell
    
    # 查看更多命令
    python3.5 manage.py help

    开始 django 的 Hello World

    1、创建 project 和 app

    创建一个project 为 Day15,并创建一个 app 为 app01, project 是一个大的工程,里面包含很多的功能,根据功能可以使用 app 来进行区分。

    例如运维平台是一个 project, 下面可能包含 CMDB,Monitor,等等

    # 创建项目
    django-admin.py startproject Day15
    
    # 进入 Day15 目录,创建 app
    python3.5 manage.py startapp app01

    目录结构:

    Day15   # 项目目录
    ├── app01   # app 目录
    │   ├── admin.py    # django 自带的管理后台,可以使用少量的代码完成强大的后台管理
    │   ├── apps.py
    │   ├── __init__.py
    │   ├── migrations
    │   │   └── __init__.py
    │   ├── models.py   # 与数据库相关,ORM 配置
    │   ├── tests.py
    │   └── views.py    # 处理用户请求,通过 URLconf 调用函数,处理用户的请求,通过 template 渲染之后返回给客户端
    ├── Day15
    │   ├── __init__.py
    │   ├── __pycache__
    │   │   ├── __init__.cpython-35.pyc
    │   │   └── settings.cpython-35.pyc
    │   ├── settings.py # 项目的配置目录
    │   ├── urls.py     # 路由系统 URLconf 配置文件,通过一定的匹配关联到 views.py 中的函数
    │   └── wsgi.py     # 通过 wsgi 调用 django 的配置文件
    ├── manage.py       # 命令行工具,允许以多种方式与 django 项目进行交互
    ├── statics         # 静态文件目录,手动创建,需要在 settings 中指定
    └── templates       # 模板文件目录,手动创建,需要在 settings 中指定

    2、生成数据库并创建超级管理员

    # 同步数据库
    python3.5 manage.py makemigrations
    python3.5 manage.py migrate
    
    # 创建超级管理员账号
    python3.5 manage.py createsuperuser

    默认情况下会在 project 的 manage.py 同级目录下生成一个 db.sqlite3 文件,因为 django 默认使用的是 sqlite3 数据库

    3、运行 Django 项目

    python3.5 manage.py runserver 127.0.0.1:8000

    默认在 127.0.0.1 地址监听 8000 端口,也可通过 IP:port 的格式指定监听地址和端口

    4、访问 Django admin

    http://127.0.0.1:8000/admin 

    5、自定义简单的 Django 页面

    编辑 app01 目录下的 views.py 文件

    # django 在给客户端返回数据时需要通过 HttpResponse 方法进行封装
    from django.shortcuts import HttpResponse
    
    # Create your views here.
    
    # HttpResponse 的参数可为为 HTTP 代码,如 <h1>Hello World!</h1>
    def hello(request):
        return HttpResponse("Hello World!")

    编辑 Day15 目录下的 urls.py 文件

    from django.conf.urls import url
    from django.contrib import admin
    
    # 导入 views
    from app01 import views
    
    urlpatterns = [
        url(r'^admin/', admin.site.urls),
    
       # url 目录   
        url(r'^hello/', views.hello),
    ]

    重新启动 django 项目,访问 http://127.0.0.1:8000/hello/

  • 相关阅读:
    让a标签点击后不发生跳转
    关于antlr.collections.AST.getLine()I错误及解决
    Python -pycharm光标变粗解决办法!!
    通过了博客园的申请,感觉自己有了归宿!
    作为甲方对软件公司的项目实施团队提的几点要求
    高性能MySql学习笔记-第五章:创建高性能的索引
    高性能MySql学习笔记-第四章:Schema 与数据类型优化
    高性能MySql学习笔记-第三章:服务器性能剖析
    npm publish报错403 Forbidden
    父子组件利用@Input和@Output传值时显示undefined
  • 原文地址:https://www.cnblogs.com/wenchong/p/6241210.html
Copyright © 2020-2023  润新知