Django基础必会

Django基础必会

  • Django项目目录

    • mysite
         -mysite
            -__init__.py
            -urls.py(函数和函数的对应关系)
            -settings.py(Django项目的配置信息)
            -wsgi.py(收发socket消息相关)
         -manage.py(命令行入口文件)
         -Template(专门用来放HTML文件的)
      
  • 必备三键套

    • from django.shortcuts import HttpResponse, render, redirect
      
    • HttpResponse作用,内部与传入一个字符串参数,返回给浏览器

      • def index(request):    #内部必须有request
            # 业务逻辑代码
            return HttpResponse("OK")
        
    • render作用,接收一个待渲染的模块文件和一个保存具体数据的字典参数,将数据填充进模板文件,最后把结果返回给浏览器

      • render(request, 'index.html')
        render(request, 'login.html', {'error_msg': error_msg})
        
      • 例:

      • def login(request):
            error_msg = ""
            if request.method == "POST":
                email = request.POST.get("email")
                pwd = request.POST.get("pwd")
                if email == "xyh@123.com" and pwd == "xyh123":
                    return redirect("/index/")
                else:
                    error_msg = "邮箱或者密码错误,请重新输入"
            return render(request, "login.html", {"error_msg": error_msg})   #html中有对应的格式,对其替换
        
    • redirect接受一个URL参数,重置向(跳转)到指定URL

      • def index(request):
            # 业务逻辑代码
            return redirect("/home/")   #在同一个网站的不同地址跳转
        	return redirect("https://www.baidu.com")  #跳转到具体的URL
        
      • 实际样式

        • 5XbA9O.md.png
  • html文件相关文件配置

    • html文件放在templates文件夹中,根据setting.py中的关联路径
    • 5XbtOq.md.png
  • 静态文件配置

    • 在setting.py文件底配置静态文件保存目录(css,JavaScript,Images都配置在静态文件中)

    • # Static files (CSS, JavaScript, Images)
      # https://docs.djangoproject.com/en/1.11/howto/static-files/
      
      STATIC_URL = '/static/'
      # 固定的配置项,告诉Django框架我的静态文件保存在哪些目录下
      STATICFILE_DIRS =[
          os.path.join(BASE_DIR, "static")
      ]
      

      5Xb6Ue.md.png

  • 登陆示例

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

      • form标签必须要有action(提交到哪里)和method属性
        • 5XbxNX.png
      • form标签中用户输入的标签中必须要有name属性
        • 5XbRbJ.png
      • form标签中必须要有submit提交按钮
        • 5XbgKB.png
    • 对于输入框提交的值的获取

      • request.POST     # 所有POST请求提交的数据(类似一个大字典)
        request.POST["pwd"]   #提取提交数据中的键为pwd对应的值
        request.POST.get("pwd",None)  #提取值,放置报错,推荐使用
        
  • Django app创建方法

    • 为什么要有app

      • 一个Django项目中可以以app为单位划分不同的功能。
    • 1.创建Django项目时,在more setting中创建app文件,这样pyCharm会自动配置文件

      • 5Xblcr.md.png
    • 2.直接在Django中Terminal中输入命令

      • 5Xp3iK.png

      • python manage.py startapp app01 #app01为app名字
        
      • 手动在setting.py中INSTALLED_APPS中加入app的信息

        • # Application definition
          # 当前项目中存在的app
          INSTALLED_APPS = [
              'django.contrib.admin',
              'django.contrib.auth',
              'django.contrib.contenttypes',
              'django.contrib.sessions',
              'django.contrib.messages',
              'django.contrib.staticfiles',
              # 'app01',
              'app01.apps.App01Config',  # 告诉Django 我有一个自己的app叫app01
          ]
          
        • 5XpDZn.png

  • Python基础创建Django 项目步骤

    • 1.在pycharm或者命名行创建一个Django项目

      • django-admin startproject 项目名
    • 2.创建一个初始的app,并且在setting.py中配置app文件的目录

      • python manage.py startapp app名字
    • 3.检查settings.py 专门存放html文件的templates配置项

    • 4.配置静态文件相关

      • 在项目的根目录中创建一个用来存放静态文件的static目录

      • STATIC_URL = '/static/'
        STATICFILES_DIRS = [
              os.path.join(BASE_DIR, 'static'),  
           ]
        
    • 5.在settings.py文件中将Csrf大概46行注释掉

      • 否则表单没办法提交数据,会提示forbidden 403的错误
原文地址:https://www.cnblogs.com/yuncong/p/9915627.html