zoukankan      html  css  js  c++  java
  • python之django基础

    看了不是同一期的视频,发现9期老师线性引入的方式,讲得django更加易于理解掌握。

    抱歉的是,笔记没有整理就发上来了。希望看到的人不要被我带偏。

    
    
    1. 新建Django项目
    命令行创建:
    django-admin startproject mysite
    pycharm创建:
    1. File --> New project --> 左侧选Django --> 右侧填项目路径,并且勾选python.exe

    2. 设置Django项目:
    1. settings.py
    1. 配置HTML文件存放的位置
    2. 配置静态文件存放的位置

    3. ''' 配置Django项目   settings.py文件 
      1. templates文件夹的位置
      2. 静态文件
        1. STATIC_URL --> 静态文件夹的别名(在HTML文件中用的)
        2. STATICFILES_DIRS --> 静态文件夹的真正路径
      3. 注释掉 csrf 相关的中间件
      4. Django项目连接的数据库信息
      5. python3 manage.py startapp crm 用来创建APP

    4. Django WEB请求流程(简版)
      1. 启动Django项目,等待用户连接
      2. 浏览器在地址栏输入URL,来连接我的Django项目
      3. 在urls.py中 找 路径和函数的 对应关系
      4. 执行对应的函数
      5. 返回响应

    5. views.py
        1. 专门用来定义处理请求的函数
          基本必备三件套 from django.shortcuts import HttpResponse, render, redirect
          1. HttpResponse("要返回的内容") --> 通常用于直接返回数据
          2. render(request, "html文件", {"k1": v1}) --> 返回一个HTML文件或者打开文件进行字符串替换
          3. redirect("URL") --> 告诉用户的浏览器去访问其他的URL
        2. request相关
          1. request.method --> 查看请求的方法
          2. request.POST --> 获取POST请求的数据
           6. ORM使用 1. 什么是ORM? 是一种编程的方法论(模型), 和语言无关.(其他的语言也有类似的实现.) 2. ORM的本质: 类 ---> 数据表 对象 ---> 数据行 属性 ---> 字段 按照规定的语法写,自动翻译成对应的SQL语句. 3. ORM的功能: ORM操作数据表 ORM操作数据行 4. Django里ORM的使用: 1. 手动创建空数据库,不必建表 ( 本例:day62 ) 2. 在settings.py里面,配置数据库的连接信息 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'day62', 'HOST': '127.0.0.1', 'PORT': 3306, 'USER': 'root', 'PASSWORD': '123456', } } 3. 在项目(项目名称,不是APP名称)下的 /__init__.py告诉Django用pymysql模块代替MySQLdb来连接MySQL数据库 import pymysql pymysql.install_as_MySQLdb() 4. 在app/models.py里面定义类 # 出版社 class Publisher(models.Model): id = models.AutoField(primary_key=True) # 自增的ID主键 # 创建一个varchar(64)的唯一的不为空的字段 name = models.CharField(max_length=64, null=False, unique=True) 5. 执行两个命令 1. python3 manage.py makemigrations --> 把models.py里面的更改记录到小本本上 2. python3 manage.py migrate --> 把更改翻译成SQL语句,去数据库执行
    '''

    直接从一个小项目“图书管理”结合,学习django. 顺便学习了一点 bootstrap3

    依次是设置settings.py 连接数据库、创建APP后在models.py编写ORM,  在urls.py设置与函数的对应关系, 应用下的views.py中编写响应函数,在templates下面编写模板html文件。

    启动服务,浏览器访问测试等。然后再不断增加、修改、循环往复,直到完成。

     直接将project打包了。点此下载:django图书管理练习

     

    # pip3 install django==1.11.13
    
    ### manage.py 文件及所有项目由命令生成。
    # 与项目进行交互的命令行工具集的入口
    # 项目管理器   python3 manage.py  # 查看所有命令
    
    # cmd命令行下:
    
    #  D:Python3>Django-admin startproject myblog
    
    # python3 manage.py runserver  # 启动web服务  访问 http://localhost:8000/ 查看web服务是否可用 It worked!
    
    # python3 manage.py runserver 9999  # 也可以指定端口启动web服务 或 监听所有IP  python3 manage.py runserver 0.0.0.0:8001
    
    ## 子目录myblog是项目目录,不建议修改名称。
    
    # wsgi.py  # 即python服务器网关接口(python Web Server Gateway Interface)
    # python应用与web服务器之间的接口  全程不会去改动它。
    
    # urls.py  # URL配置文件 项目中所有地址(页面)都需要我们自己去配置URL
    
    '''--------------------------------------------------------------------
     settings.py  # 整个项目最核心最重要的 总配置文件
       包含了数据库、web应用、时间等各种配置
    ------------------------------------------------------------------------'''
    
    ### 使用 python3 manage.py startapp blog 创建 blog 应用
    # 创建应用时避免和模块名冲突。
    # 将应用 blog 加入项目的 settings中INSTALLED_APPS下
    # 例如: 'blog.apps.BlogConfig',  
    """=========================================================================
    如果使用pycharm创建django项目的话,可以在创建时同时创建应用,
    且应用将自动加入 settings 中 INSTALLED_APPS 下
    ==========================================================================="""
    
    # blog 下的:
    #  migrations 数据迁移模块 涉及数据库操作 内容自动生成
    #  admin.py 该应用的后台管理系统配置
    #  apps.py  该应用的一些配置  django1.9以后自动生成
    #  models.py  数据模块 使用ORM框架  类似于MVC中的Models(模型)
    #  tests.py  自动化测试模块  django提供了自动化测试功能  在这里编写测试脚本
    
    # ### views.py  执行响应的代码  代码逻辑处理的主要地点  项目中的大部分代码均在这里编写
    #
    ''''''
    
    # 编辑 blog.views
    '''
        每个响应对应一个函数,函数必须返回一个响应
        函数必须存在一个参数,一般约定为request
        每一个响应(函数)对应一个URL
    '''
    
    # 编辑urls.py
    '''
        每个URL都以url的形式写出来
        url函数放在urlpatterns列表中
        url函数三个参数:URL(正则),对应方法,名称
    '''
    
    
    '''
    Models是什么?
        通常,一个Model对应数据库的一张表,Django的models以 类 的形式表现,它包含了一些基本字段以及数据的一些行为。
    ORM 对象关系映射(Object Relation Mapping) 实现了对象和数据库之间的映射。
        隐藏了数据访问的细节,不需要编写SQL语句
    
    编写Modles
    在应用根目录下创建models.py, 引入models模块
    创建类,继承models.Model 该类即是一张数据表
    在类中创建字段 :
        字段即类里的属性(变量)
        attr = models.CharField(max_length=64)
        官网:https://docs.djangoproject.com/en/1.11/ref/models/fields/
        
    生成数据表:
        命令行进入manage.py所在目录
        执行 python manage.py makemigrations [可选参数 app名]
        再执行 python manage.py migrate
        其实就是settings.py中的 INSTALLED_APPS 中的应用所对应的数据 
        如果没有指定主键,则django会自动加上id列,int型,主键,自动增长。
        
        利用 python manage.py sqlmigrate 应用名 文件id  可查看SQL语句
        python manage.py sqlmigrate blog 0001
        
        查看数据库可用sqlite expert 或者 Navicat 
    
    页面呈现数据: 
        views.py中import models
        article = models.Article.objects.get(pk=1)
        return render(request,page,{"article":"article"})  
        前端步骤:
            模板可直接使用对象以及对象的"."操作
            {{article.title}}
        
    '''

    如果linux环境,则:

    """
    这个笔记不是9期的.
    
    CentOS6.5下安装pip 
    在已有python2.7的基础上:
    1. 下载setuptools及pip的源码包
    > wget --no-check-certificate https://bootstrap.pypa.io/ez_setup.py
    > python ez_setup.py --insecure
    
    2. 下载并安装pip
    wget https://pypi.python.org/packages/11/b6/abcb525026a4be042b486df43905d6893fb04f05aac21c32c638e939e447/pip-9.0.1.tar.gz#md5=35f01da33009719497f01a4ba69d63c9 --no-check-certificate
    
    tar zxvf pip-9.0.1.tar.gz
    cd pip-9.0.1
    python setup.py install
    后面安装django使用pip即可
    """

    web框架的本质:

    1. web框架的本质:
    			socket服务端  与 浏览器的通信
    		2. socket服务端功能划分:
    			a. 负责与浏览器收发消息(socket通信)  --> wsgiref/uWsgi/gunicorn...
    			
    			b. 根据用户访问不同的路径执行不同的函数
    			
    			c. 从HTML读取出内容,并且完成字符串的替换  --> jinja2(模板语言)
    			
    		3. Python中 Web框架的分类:
    			
    			1. 按上面三个功能划分:
    				1. 框架自带a,b,c                 --> Tornado
    				2. 框架自带b和c,使用第三方的a    --> Django
    				3. 框架自带b,使用第三方的a和c    --> Flask
    			2. 按另一个维度来划分:
    				1. Django   --> 大而全(你做一个网站能用到的它都有)
    				2. 其他     --> Flask 轻量级
  • 相关阅读:
    jquery 实现 html5 placeholder 兼容password密码框
    php返回json的结果
    使用PHP读取远程文件
    Sharepoint 自定义字段
    Sharepoint 中新增 aspx页面,并在页面中新增web part
    【转】Sharepoint 2010 配置我的站点及BLOG
    JS 实现 Div 向上浮动
    UserProfile同步配置
    【转】Import User Profile Photos from Active Directory into SharePoint 2010
    Sharepoint 2010 SP1升级后 FIMSynchronizationService 服务无法开启
  • 原文地址:https://www.cnblogs.com/frx9527/p/python_django1.html
Copyright © 2011-2022 走看看