• Django-1 入门


    Django安装及初始配置

    1、安装及常用命令

    #1、安装
    pip  install django
    #2、创建项目
    django-admin startproject project_name
    #3、运行django程序
    python manage.py runserver 127.0.0.1:8001
    #4、创建app
    python manage.py startapp cmdb
    #5、数据库表操作
    python manage.py makemigrations
    python manage.py migrate
    #操作数据库不成功时,使用--empty重新建表
    python manage.py makemigrations --empty 应用名
    

    2、各个文件的作用

    mysite             #对整个程序进行配置
        init
        settings       #配置文件
        url            #URL对应关系
        wsgi           #遵循WSIG规范,uwsgi + nginx
        manage.py      #管理Django程序:
    app:
        migrations     #数据库表结构修改记录
        admin          #Django为我们提供的后台管理
        apps           #配置当前app
        models         #ORM,写指定的类  通过命令可以创建数据库结构
        tests          #单元测试
        views          #业务代码
    

    3、配置说明

    #配置模板路径
    TEMPLATES = [
                    {
                        'BACKEND': 'django.template.backends.django.DjangoTemplates',
                        'DIRS': [os.path.join(BASE_DIR, 'templates')], #模板路径
                       'APP_DIRS': True,
                        'OPTIONS': {
                            'context_processors': [
                                'django.template.context_processors.debug',
                                'django.template.context_processors.request',
                                'django.contrib.auth.context_processors.auth',
                                'django.contrib.messages.context_processors.messages',
                            ],
                        },
                    },
                ]
    
    #配置静态目录
    STATIC_URL = '/static/'
    STATICFILES_DIRS = (
             os.path.join(BASE_DIR, 'static'),
          )
    
    #注释跨站请求伪造
    'django.middleware.csrf.CsrfViewMiddleware',
    
    #settings增加app名
    INSTALLED_APPS = [
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        'cmdb',
    ]
    
    #mysql数据库的话,在settings里修改DATABASES
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',
            'NAME': 'myweb',
            'USER': 'root',
            'PASSWORD': 'my-pw',
            'HOST': '172.3.250.254',
            'PORT': '3306',
        }
    }
    
    #Django默认使用MySQLdb模块链接MySQL
    #主动修改为pymysql,在project同名文件夹下的__init__文件中添加如下代码即可:
    import pymysql
    pymysql.install_as_MySQLdb()
    
    

    Django使用

    1、接收请求响应

    #主目录urls:
    from django.contrib import admin
    from django.urls import path,re_path
    from django.shortcuts import HttpResponse
    
    from cmdb import views as cmdb
    
    urlpatterns = [
        path(r'admin/', admin.site.urls),
        path(r'login',cmdb.login),
        path(r'clogin/',cmdb.Login.as_view()),
    ]
    
    
    #app中view中:
    from django.shortcuts import render
    from django.shortcuts import HttpResponse
    from django.shortcuts import redirect
    # Create your views here.
    from django.views import View
    
    
    #FBV
    def login(request):
    
        if request.method == 'GET':
            return render(request,'login.html')  #可直接返回模板文件
    
        elif request.method == 'POST':
            return HttpResponse("<h1>OK</h1>")  #直接返回文本
    
        else:
            return redirect('http://baidu.com')  #跳转或重定向
    
    #CBV
    class Login(View):
    
        def dispatch(self,request,*args,**kwargs):
            '''
                可以通过重写dispatch来执行更多的事情
            :param request: 
            :param args: 
            :param kwargs: 
            :return: 
            '''
            result = super(Login,self).dispatch(request,*args,**kwargs)
            return result
    
        def get(self,request):
            return render(request,'login.html')
    
        def post(self,request):
            return HttpResponse("<h1>OK</h1>")
    
        def delete(self,request):
            return redirect('http://baidu.com')
    
    
    

    2、接收请求的方法

    1、获取用户请求数据
    	request.method  		  #请求方式
        request.GET
        request.POST
        request.POST.get('user')  #获取来自用户提交的数据
        request.POST.getlist()    #checkbox等多选的内容
        request.FILES
    
    

    示例

    上传文件:

    from django.shortcuts import render
    from django.shortcuts import HttpResponse
    from django.shortcuts import redirect
    
    def index(request):
        if request.method == 'POST':
            obj = request.FILES.get('put_file')
            f = open(obj.name,mode='wb')
            for item in obj.chunks():
                f.write(item)
            f.close()
            return HttpResponse("OK")
        else:
            return  render(request,'index.html')
    
    <body>
    <form action="/index"  method="post" enctype="multipart/form-data">
        <div>
            <input type="file" name="put_file"/>
        </div>
        <div>
            <input type="submit" value="上传"/>
        </div>
    </form>
    </body>
    
  • 相关阅读:
    4.2 面向对象分析(二) CRC方法标识概念类
    4.1 面向对象分析(二) 标识概念类和对象
    3.4 面向对象分析(一)面向对象设计(初步)
    3.3 面向对象分析(一)分析模型法
    3.2 面向对象分析(一)名词法
    3.1 面向对象分析与设计概览
    2.7 UML状态图
    2.6 通信图
    2.5 UML顺序图
    2.4 UML类图
  • 原文地址:https://www.cnblogs.com/chimeiwangliang/p/12706768.html
Copyright © 2020-2023  润新知