zoukankan      html  css  js  c++  java
  • Django项目的创建与介绍.应用的创建与介绍.启动项目.pycharm创建启动项目.生命周期.三件套.静态文件.请求及数据.配置Mysql完成数据迁移.单表ORM记录的增删改查

    一、Django项目的创建与介绍

    '''
    安装Django
    #在cmd中输入pip3
    #出现这个错误Fatal error in launcher: Unable to create process using '"'
    #可以直接用 python3 -m pip 代替 pip3
    #这个问题是pip3 版本过低直接在cmd中执行 python3 -m pip install --upgrade pip 更新pip3
    
    # 在指定解释器环境下安装django 1.11.9
    # 在真实python3环境下: pip3 install django==1.11.9
    
    # 查看django版本: django-admin --version
    # 安装出错: 采用管理员命令行
    '''
    '''
    创建项目
    # 先前往目标路径
    在cmd
    C:UsersAdministrator>E:
    E:>cd E:python-liDjango
    # 创建项目: django-admin startproject proj_name     
    E:python-liDjango>django-admin startproject dg01
    
    
    proj_name:项目目录,包含项目最基本的一些配置
        -- __init__.py:模块的配置文件
        -- settings.py:配置总文件
        -- urls.py:url配置文件,django项目中的所有页面都需要对其配置url地址
        -- wsgi.py:(web server gateway interface),服务器网关接口,python应用与web服务器直接通信的接口
    templates:模板文件夹,存放html文件的(页面),支持使用Django模板语言(DTL),也可以使用第三方(jinja2)
    manage.py:项目管理器,与项目交互的命令行工具集的入口,查看支持的所有命令python3 manage.py
    '''

    二、应用的创建与介绍

    '''
    1.Django是面向应用开发,在应用中完成具体的业务逻辑
    2.什么是应用app: 就好比项目中的一个功能模块,一个项目可以拥有多个功能模块,但至少得有一个,Django称之为app
    3.如何创建app(在项目目录下):
    # 进入项目根目录
    E:python-liDjango>cd dg01
    # 创建应用: python3 manage.py startapp app_name
    E:python-liDjangodg01>python3 manage.py startapp app01
    
    
    
    
    migrations:数据迁移(移植)模块,内容都是由Django自动生成
        -- __init__.py
    __init__.py
    admin.py:应用的后台管理系统配置
    apps.py:django 1.9后,本应用的相关配置
    models.py:数据模型模块,使用ORM框架,类似于MVC模式下的Model层
    tests.py:自动化测试模块,可以写自动化测试脚本
    views.py:执行相应的逻辑代码模块
    '''

    三、启动项目

    '''
    #在项目目录下执行
    # 终端: python3 manage.py runserver 
    E:python-liDjangodg01>python3 manage.py runserver
    #默认127.0.0.1:8801
    '''

    四、pycharm创建启动项目

    '''
    1.创建Django
    2.选择项目目录(从项目目录开始,目录文件夹及子文件夹不要出现中文,保证电脑名字不能为中文)
    3.配置默认模板语言,模板路径,app名
    4.启动
    '''

    五、生命周期

    '''
    1.浏览器发送请求
    2.wsgi服务器接收到请求,将请求解析交给Django
    3.Django中间件过滤请求信息,交给路由
    4.路由完成业务逻辑的分发,到指定app下views中指定的视图函数
    在views的指定视图函数必须接受一个参数,我们将其命名为request
    可以用request.method得到请求方法
    5.视图函数完成具体的业务逻辑,返回响应结果
    响应文件回去我们应该将文件放到templates这个文件夹下
    6.将处理结果通过服务器返回给浏览器
    '''

    六、三件套

    #views中返回响应结果三件套
    from django.shortcuts import HttpResponse, render, redirect
    
    def action1(request):
        #返回普通字符串
        return HttpResponse("基础信息")
    
    def action2(request):
        #返回页面      (request,返回页面名,字典)
        return render(request, 'template_page.html', {k:v})
        
    def action3(request):
        #重定向         ('/重定向到的请求/')
        return redirect('/index/')

    七、静态文件

    '''
    1.在settings.py中配置
    STATIC_URL = '/static/'  # 静态文件请求根路由
    STATICFILES_DIRS = [
        os.path.join(BASE_DIR, 'static')   # 静态文件检索的文件夹
    ]
    2.在项目根目录下创建static文件夹
    3.静态文件就放在static根目录或子目录下
    4.获取静态文件:/static/目标文件(可以包含static子文件夹路径)
    如:/static/my.css 
    /static/css/my.css
    '''

    八、请求及数据

    '''
    请求路径 form表单中的action:
    1.空着:默认向当前路径发送请求
    2.http://127.0.0.1:8801/testAction/:向testAction路径发送请求
    3./testAction/: 向testAction路径发送请求(推荐)
    小知识点:①可以在settings.py下的中间件配置中找到含有csrf的那条代码,将它关闭这样就可以跳过post请求的安全认证
    ②print(type(request)) 得到一行代码,直接import点击进入可以查看request源码
    
    在视图函数中
    请求方式:request.method
    GET请求获取数据:request.GET.get('key', None)  # 当key不存在,用None替换
    POST请求获取数据:request.POST.get('key', None)  # 当key不存在,用None替换
    '''

    九、配置Mysql完成数据迁移

    '''
    1.在settings.py配置Mysql数据库信息
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',
            'NAME': 'dg2',
            'HOST': '127.0.0.1',
            'PORT': 3306,
            'USER': 'root',
            'PASSWORD': 'root'
        }
    }
    
    2.在项目或应用的init文件中修改连接数据库的模块为pymysql (python3后连接数据库采用pymysql来代替MYSQLdb)
    
    import pymysql
    pymysql.install_as_MySQLdb()
    
    3.在项目目录下(可以在cmd中执行,也可以直接在pycharm中执行dg文件然后在显示台terminal中执行),执行(生成迁移数据,没有映射到数据库):python3 manage.py makemigrations
    #E:python-liDjangodg2>python3 manage.py makemigrations
    
    4.将迁移数据映射到数据库:python3 manage.py migrate
    #E:python-liDjangodg2>python3 manage.py migrate
    #建成的表名:应用名_表名
    
    3,4可以有个简单方法 在pythorm上方的Tools执行Run manage,py Task
    在命令行直接运行makemigrations 然后运行migrate 
    
    ''

    十、单表ORM记录的增删改查

    '''
    Django所有的增删改查都封装到model中去了,直接用User.objects调用方法
    filter()方法是过滤,中间写过滤的条件
    # 增
    User.objects.create(usr='abc', pwd='123')  # 第一种方式
    user = User(usr='owen', pwd='123')
    user.save()  # 第二种方式
    # 删
    User.objects.filter(id=1).delete()
    # 改
    User.objects.filter(pwd='123').update(pwd='000')
    # 查
    User.objects.all()
    User.objects.filter(pwd='000').all()
    User.objects.filter(pwd='000').first()
    '''
  • 相关阅读:
    es5预览本地文件、es6练习代码演示案例
    Java实现 LeetCode 838 推多米诺(暴力模拟)
    Java实现 LeetCode 838 推多米诺(暴力模拟)
    Java实现 LeetCode 838 推多米诺(暴力模拟)
    Java实现 LeetCode 837 新21点(DP)
    Java实现 LeetCode 837 新21点(DP)
    Java实现 LeetCode 837 新21点(DP)
    Java实现 LeetCode 836 矩形重叠(暴力)
    Subversion under Linux [Reprint]
    Subversion how[Reprint]
  • 原文地址:https://www.cnblogs.com/lizeqian1994/p/10468772.html
Copyright © 2011-2022 走看看