• Django 简介


    1.django 版本 及安装

      1.x - 3.x    pip install  django 1.11.11       如果安装其他版本

    M 代表模型(Model):负责业务对象和数据库的关系映射(ORM)。

    T 代表模板(Tempalte):负责如何把页面展示给用户(html)。

    V 代表视图(View):负责业务逻辑,并在适当的时候调用Model和Template。


    前端访问后端的方式  http://127.0.0.1:8000/login/    ==>  到路由  urls   url(r'^login/', views.login) 找到  对应的views    
    views可以调用models  去进行数据处理,在返回一个前端页面  return render(request,'login.html')   或数据   return HttpResponse('用户名不存在')

    常用命令:

    django-admin.py -- version	查看版本号
    django-admin.py startproject project_name	创建项目
    python3 manage.py startapp app_name	创建APP
    python3 manage.py makemigrations	
    python3 manage.py migrate	
    python3 manage.py runserver 0.0.0.0:8000	启用django服务器
    python3 manage.py flush	清空数据库
    python3 manage.py createsuperuser	创建超级用户
    python3 manage.py changepassword username	更改密码
    python3 manage.py dumpdata appname > appname.json
    python3 manage.py loaddata appname.json	导入数据库
    python3 manage.py shell	终端
    python3 manage.py dbshell	DB终端
    
    

    命令创建项目与pycharm 创建项目的区别:

    1.使用命令行创建的django项目是不会自动创建templates摸版本文件夹 你只能自己手动创建
    2.命令行创建的django项目不但没有templates文件夹配置文件中也没有填写路径  而pycharm创建的会自动添加
    

      

    Django 目录及其作用

    mysite
    		-mysite            创建项目时自动生成
    			--__init__.py
    			--settings.py  项目配置文件       新建app时,必须在setting里面注册
    			--urls.py      路由视图函数对应关系 项目的总路由
    			--wsgi.py      
    		-manage.py
    		app01               创建app时生成
    			--migrations文件夹  数据库改动记录
    				----__init__.py
    			--__init__.py
    			--admin.py			django后台管理    amin 内置超级用户
    			--apps.py			注册app相关
    			--models.py         模型类(ORM)
    			--tests.py			测试文件
    			--views.py          视图函数(******) 

     setting文件目录详解

    新建app时,必须在setting里面注册

    # Application definition
    # 已经安装过的app              我们创建的app也必须先在这个地方注册之后才能正常执行
    INSTALLED_APPS = [
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        # 注册我们自己的app
        # 'app01'  # 简写
        'app01.apps.App01Config'  # 完整写法
    ]

    # 中间件
    MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
    ]
    # 模板文件夹配置
    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',
    ],
    },
    },
    ]

    WSGI_APPLICATION = 'mysite.wsgi.application'


    # Database
    # https://docs.djangoproject.com/en/1.11/ref/settings/#databases

    DATABASES = {
    'default': {
    'ENGINE': 'django.db.backends.sqlite3',
    'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
    }


    # Password validation
    # https://docs.djangoproject.com/en/1.11/ref/settings/#auth-password-validators

    AUTH_PASSWORD_VALIDATORS = [
    {
    'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
    },
    {
    'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
    },
    {
    'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
    },
    {
    'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
    },
    ]


    # Internationalization
    # https://docs.djangoproject.com/en/1.11/topics/i18n/

    LANGUAGE_CODE = 'en-us'

    TIME_ZONE = 'UTC'

    USE_I18N = True

    USE_L10N = True

    USE_TZ = True


    # Static files (CSS, JavaScript, Images)
    # https://docs.djangoproject.com/en/1.11/howto/static-files/

    STATIC_URL = '/static/'

      

    Django 项目创建

    django框架
    	1.注意事项
    		1.计算机名称不能有中文
    		2.项目文件名也不要用中文
    		3.一个pycharm窗口就是一个单独的完整的项目
    	
    	2.版本问题
    		1.X
    		2.X
    		推荐你使用1.X版本里面的
    			1.11.09~1.11.13
    		如果你已经按照过不需要手动卸载 重新安会自动先卸载之前的版本再安装
    	3.安装
    		pip3 install django==1.11.11
    	4.测试是否安装成功
    		命令行输入django-admin
    		
    	如何创建django项目
    		1.命令行
    			1.创建django项目
    				django-admin startproject mysite(项目名)
    				效果:创建一个mysite的文件夹
    					mysite
    						-mysite
    							--__init__.py
    							--settings.py
    							--urls.py
    							--wsgi.py
    						-manage.py
    			2.启动django项目(先切换到项目目录下)
    				python3 manage.py runserver # django默认的端口号是8000
    			
    			3.创建具有独立功能的app  通常情况下应该做到见名知义
    				python manage.py startapp app01
    					app01
    						--migrations文件夹
    						--__init__.py
    						--admin.py
    						--apps.py
    						--models.py
    						--tests.py
    						--views.py
    						
    						
    			"""
    			1.使用命令行创建的django项目是不会自动创建templates摸版本文件夹 你只能自己手动创建
    			2.命令行创建的django项目不但没有templates文件夹配置文件中也没有填写路径
    				而pycharm创建的会自动添加
    			"""
    	
    		2.pycharm快捷创建
    			
    	app的概念
    		application 应用
    		django其实是一个专注于开发app的web框架
    		一个空的django项目就类似于是一所大学
    		app就类似于大学里面的各个学院
    		每个app其实就类似于不同的功能模块
    			购物网站
    				用户相关 user
    					用户相关的app
    				订单相关 order
    					订单相关的app
    				投诉相关 tousu
    					投诉相关的app
    		不同的功能模块推荐使用不同的app去开发
    		django支持多app  

     三大主流框架

    django
    		大而全 自身携带的组件和功能特别特别多  就类似于航空母舰
    		不足之处:笨重   
    			当你的功能不多 不需要使用很多其他功能 
    	flask(源码600多行  请求上下文 应用上下文)
    		小而精 自身携带的组件和功能特别特别少  就类似于游骑兵
    		虽然自身功能比较少  但是第三方支持该框架的模块特别特别多
    		如果你将flask第三方模块全部叠加起来 甚至可以超过django
    		不足之处:受限于第三方模块
    			
    	tornado
    		异步非阻塞
    		天然支持高并发 甚至可以用它来开发游戏服务器  

    动静态网页

    静态网页
    		数据是写死的 万年不变
    动态网页	
    		数据是动态获取的 
    			eg:
    				1.获取当前时间
    				2.从数据库中获取数据 

     程咬金三板斧

    django小白必会三板斧
    	HttpResponse
    		返回字符串   可以是二进制格式
    	render
    		返回html页面  并且可以给html页面传数据
    		模板的渲染(将数据在后端按照模板语法放入html对应的位置)
    			
    	redirect
    		重定向
    	
    	def index(request):
    		return HttpResponse('你好啊 小妹妹')
    
    
    	def login(request):
    		return render(request,'login.html',{'user_dict':{'username':'jason','password':123},'userxxx':'hello world'})
    
    
    	def home(request):
    		# return redirect('https://www.mzitu.com')
    		return redirect('/index')
    

      

     

      

  • 相关阅读:
    安卓开发中Theme.AppCompat.Light的解决方法
    一个监听事件监听多个按钮
    onCreate中的savedInstanceState有何具体作用
    [转]Bundle对象的使用
    【转】Android详细的对话框AlertDialog.Builder使用方法
    实现按两次返回键退出应用(利用安卓按后退键引发的函数)
    [转]解决eclipse连接不到genymotion的问题
    随笔记录九 进程和计划任务任务管理
    linux引导过程和服务控制
    上机作业三 账号管理
  • 原文地址:https://www.cnblogs.com/bigbox/p/12145632.html
Copyright © 2020-2023  润新知