Django入门

作者: Pope_Li | 来源:发表于2018-11-08 19:42 被阅读0次

    什么是Django

    官方文档
    Django提供了一个高级的框架,用它只需要很少的几行代码就能完成一个WEB应用,Django是由Python写出来的.

    Django特点:

    1.遵循MVC开发模式.
    2.内置进行快速web开发所需的各种组件
    3.利用ORM(对象关系映射)机制来定义和数据库,使开发人员可以构建出独立于具体数据库引擎的web应用
    4.内置 web Server,开发人员无需安装就可以进行web应用的开发和测试.
    5.具有灵活而强大的自定义url系统
    6.支持多国语言
    MTV设计模式
    M:model数据模型
    T:template模板
    V:views视图

    安装Django

    pip install django==1.11.16
    pip install django==1.11.16 -i 临时指定pypi源

    pip -V                            --> 查看pip的版本和来自哪个python解释器
    pip list                          --> 查看当前python解释器中安装的第三方包和版本号
    pip uninstall django              --> 卸载
    pip freeze > requirements.txt     --> 当前Python解释器环境的第三方包名和版本号都导出到requirements.txt中
    pip install -r requirements.txt   --> 递归的按照requirements.txt中列出来的安装
    

    Django请求流程图

    现阶段Django请求流程图.png

    使用Django

    创建项目和运行

    1. 命令行
    1.创建项目:<pr>djiango-admin startproject 项目名<pr/>
    2. 启动运行
    (1) 切换到项目的根目录下
    (2) 执行下面代码:
    python3 manage.py runserver
    python3 manage.py runserver 127.0.0.1:8080
    python3 manage.py runserver 8080
    3. 创建APP
    python manage.py startapp app01

    2. PyCharm
    1.在菜单栏点击file选项

    QQ截图20181108151025.png
    2.选择New Project项目里的Django,右边写项目名和选择python解释器
    QQ截图20181108151551.png QQ截图20181108151715.png
    1. 创建APP
      在上图中输入app项目名称
    2. 启动运行
      (1) 先看绿色三角左边的名字和项目名是否一致,一致的话才进行下一步
      (2) 用鼠标左键点一下绿色三角

    配置环境

    Django项目的目录
    1. mysite
    -mysite
    -init.py
    -urls.py(函数和函数的对应关系)
    -settings.py(Django项目的配置信息)
    -wsgi.py(收发socket消息相关)
    -manage.py(命令行入口文件)
    -Template(专门用来放HTML文件的)
    配置settings.py文件
    1.注册APP:在INSTALLED_APPS中注册APP在后边输入:'app01.apps.App01Config',
    2.MIDDLEWARE: 中间件
    3.TEMPLATES: 模板的相关配置
    4.DATABASES: 数据库相关的配置:(提前创建一个数据库)

    
          DATABASES = {
                'default': {
                    'ENGINE': 'django.db.backends.mysql',  
                    # 告诉Django要连接的是MySQL数据库
                    'NAME': 'day57',  # 数据库名称
                    'HOST': '127.0.0.1',  # 数据库的IP
                    'PORT': 3306,  # 数据库的端口
                    'USER': 'root',  # 连接数据的账号
                    'PASSWORD': '123'  # 连接数据库的密码
                    }
                 }
    

    5.STATIC_URL = '/static/' 静态文件的别名,模板中以别名开头

    STATICFILES_DIRS = [
                                  os.path.join(BASE_DIR, 'static'),
                                ]
    
    1. 告诉django使用pymysql的模块链接MySQL数据库
      在与setting同级的目录下的init.py中写代码:
    import pymysql
    pymysql.install_as_MySQLdb()    
    

    7.数据库的迁移

    python manage.py makemigrations     # 检查 models.py 是否有变化,记录变化
    python manage.py migrate            # 将变更记录同步到数据库中
    

    Django在终端的基本操作

    python -m django --version                    ----> 查看Django的版本
    django-admin startproject mysite            ----> 创建一个mysite项目
    python manage.py shell                          ----> django项目环境终端
    python manage.py startapp app01          ----> 创建应用程序
    python manage.py runserver [8000]        ----> 启动程序
    python manage.py makemigrations         ----> 进行创建模型变化迁移
    python manage.py migrate                      ----> 运行应用变化到数据库
    python manage.py syncdb                       ----> 清空数据库(保留数据表)
    python manage.py createsuperuser         ----> 创建管理员用户
    python manage.py changepassword username ----> 修改用户名密码
    

    基础必知必会3件套

    使用的时候先导入:
    from django.shortcuts import HttpResponse, render, redirect
    1. HttpResponse

    内部传入一个字符串参数,返回给浏览器

    def index(request):
        # 业务逻辑代码
        return HttpResponse("OK")
    

    2. render:

    除request参数外还接受一个待渲染的模板文件和一个保存具体数据的字典参数。
    将数据填充进模板文件,最后把结果返回给浏览器。

    1. render(request,'index.html')
    2. render(request,'login.html'{'error_msg':error_msg})
    def index(request):
        # 业务逻辑代码
        return render(request, "index.html", {"name": "john", "hobby": ["烫头", "泡吧"]})
    

    3. redirect:重定向(跳转)

    1. redirect('/index/'):在同一个网站的不同的地址之间跳转
    2. redirect('http://www.baidu.com'):跳转到具体的URL
    def index(request):
        # 业务逻辑代码
        return redirect("/home/")
    

    补充

    request

    1. request.method --> 所有跟请求相关的数据都封装到这个对象
    2. request.GET --> 请求方法的全大写(GET/POST/...)
      request.GET['key'] --> 获取URL中的参数(类似字典),POST请求的URL也可以带参数
      request.GET.get('key')
    3. request.POST --> 获取POST请求中携带的参数(类似字典)

    form表单提交数据的三个关键

    1. form标签必须要有action和method属性
    2. form标签中获取用户输入的标签必须要有name属性
    3. form标签中必须要有submit按钮

    相关文章

      网友评论

        本文标题:Django入门

        本文链接:https://www.haomeiwen.com/subject/ppcgxqtx.html