首页 > 其他分享 >Django框架简介

Django框架简介

时间:2023-05-08 19:24:18浏览次数:40  
标签:框架 项目 创建 py django 应用 简介 Django

python主流web框架

django
    大而全 自带的功能非常的多 但是有时候会略显笨重
  类似于'航空母舰'
  
flask
    小而精 自带的功能非常的少 但是第三方模块非常的多
  类似于'游骑兵'
  # flask的第三方模块加到一起甚至比django还多 并且也越来越像django
  # flask由于过多的依赖于第三方模块 有时候也会受制于第三方模块
  
tornado
    异步非阻塞框架 速度极快 甚至可以用于充当游戏服务器

# 还有一些占比较小 但是也很厉害的框架
    fastapi、sanic......
  
"""
框架的核心逻辑几乎是一致的 我们在学习的时候只需要先学会一种
之后就可以触类旁通 但是需要强调的是:千万不用同时学习!!!
"""

django框架版本

django3.X:自带异步功能
django2.X:默认不支持异步
django1.X:默认不支持异步
'''
学习基于django1.X版本即可原因:   老项目中使用频率最高、最广泛的版本!!!
  与2.X功能几乎一致,后续会讲解两者区别之处
  与3.X最主要的区别在于新增了一个异步的功能
'''

框架下载

pip3 install django==1.11.11
'''如果之前下载了其他版本不用管 自动替换!!!'''

注意事项

  1. 计算机名称不要出现中文
  2. python解释器版本不同可能会出现启动报错
  3. 项目中所有的文件名称不要出现中文
  4. 多个项目文件尽量不要嵌套,做到一项一夹

启动如果报错,根据提示找到修改widgets.py文件第152行源码,删除最后的逗号即可

基本使用

1.验证是否下载成功

cmd窗口直接输入django-admin有一长串结果展示表明成功(需提前配置解释器环境变量)

2.常见操作命令

# 1.创建django项目
    django-admin startproject 项目名(如:mysite)
# 2.启动django项目
    cd 项目名(如:mysite)
    python3 manage.py runserver IP:PORT 
    '''IP:PORT可以不写 默认在本地8000端口起服务'''
# 3.创建app应用
    python3 manage.py startapp 应用名(jason01)
命令行操作 cmd
	1.创建Django项目
    	1.1.先切换到指定目录,切换到D盘
        	d:
		1.2.创建Django项目
        	'''django-admin startproject 项目名称'''
        	django-admin startproject mysite01
	2.启动Django项目
    	2.1.先切换到项目目录下
        	cd mysite01
		2.2.执行启动目录
        	python3 manage.py runserver ip:port(不写ip和端口,默认是 127.0.0.1:8000)
            ctrl+c 在cmd里停止
	3.访问Django服务端
    	浏览器直接输入 127.0.0.1:8000
	4.创建app应用
        """
        Django框架类似于是一个空壳子,给你提供所需的资源
        写功能需要通过创建app来划分
        """
		4.1.创建app
        	'''python3 manage.py startapp 应用名'''
            python3 manage.py startapp app01
            
pycharm操作
"""每个Django项目使用的端口不能冲突"""
	1.创建项目
        新建项目---Django---location: django_01(创建项目目录)
                           Templates folder:templates (保持默认,存储HTML的文件夹)
                           Application name: app01   (app应用,自定义名字)
                           Enable Django admin (默认勾选,自带的后台管理功能)
	2.直接右键运行
    	'''可能会遇到版本问题,有报错'''
        例如:
            File "D:\django_01\django_01\settings.py", line 58, in <module>
    		'DIRS': [BASE_DIR / 'templates']
             		~~~~~~~~~^~~~~~~~~~~~~
			TypeError: unsupported operand type(s) for /: 'str' and 'str'
		一般都是python与Django的版本之间不匹配,按提示,把/换成,
	3.修改端口号
    	点击绿色按钮旁边的django_01,编辑配置,修改端口
		再重新启动Django即可

命令行与pycharm区别

1.命令行cmd不会自动创建templates文件夹
2.命令行不会在配置文件编写关于templates文件夹的配置
    """文件是项目名下的settings.py文件"""
    pycahrm创建的DIRS里是有内容的,cmd创建的是空的,需要自己配置
    """但是DIRS都需要重新改下,如下所示"""
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        # 'DIRS': [BASE_DIR, 'templates'],
        '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',
            ],
        },
    },
]

3.命令行创建的app应用,需要手动添加注册;pycharm创建的app应用会自动添加
	"""还是settings文件"""
添加'app01.apps.App01Config',  或者简写app01
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'app01.apps.App01Config',
]

4.db.sqlie3不需要管他,只要运行,就会自动创建

3.应用的概念

django框架相当于是一所大学,应用相当于是大学里面的各个学院
  大学相当于是个空壳子 负责提供环境
  学院才是一个个真正具备特定功能的集合

eg:
  使用django写一个淘宝,淘宝里面有很多功能模块
  我们应该先创建一个空的django项目然后根据功能的不同创建不同的应用
  django项目
    应用名01(user)     用户相关业务
    应用名02(order)    订单相关业务
    应用名03(goods)    产品相关业务
    应用名04(backend) 后台相关业务

主要文件

-mysite文件夹名称

  --mysite同名文件夹

    ----settings.py        项目配置文件

    ----urls.py          总路由层

  --manage.py           项目入口文件

  --db.sqlite3            运行项目后自动创建(django自带的小型数据库)

  --应用文件夹           通过命令创建(可以创建任意个数)

    ----migrations文件夹     存储数据迁移记录

    ----admin.py         django提供的后台管理

    ----apps.py          用于配置文件的应用注册(创建的应用都需要去配置文件中注册)

    ----models.py         模型层(与数据库相关)

    ----views.py          视图层(编写当前应用核心业务逻辑代码)

    ----tests.py          自带的测试文件

标签:框架,项目,创建,py,django,应用,简介,Django
From: https://www.cnblogs.com/ycmyay/p/17382864.html

相关文章

  • Django之auth认证模块
    目录前戏:auth模块的使用auth之用户注册auth模块之登录request.user方法介绍request.user.is_authenticatedauth模块之网页首页auth模块之用户登录过直接跳转页面auth模块之用户修改密码auth模块之注销用户auth模块之扩展表前戏:django自带一个admin路由但是需要我们提供管理员......
  • Web框架推导
    Web框架本质web框架本质上可以看成是一个功能强大的socket服务端,用户的浏览器可以看成是拥有可视化界面的socket客户端。两者通过网络请求实现数据交互,学者们也可以从架构层面上先简单的将Web框架看做是对前端、数据库的全方位整合纯手撸web框架前面的课程我们已经学习了网络......
  • Django面试题
    1.DjangoORM查询中select_related和prefetch_related的区别??defselect_related(self,*fields)性能相关:表之间进行join连表操作,一次性获取关联的数据。总结:1.select_related主要针一对一和多对一关系进行优化。2.select_related使用SQL的JOIN语句进行......
  • 数据库简介
    一数据库管理软件的由来基于我们之前所学,数据要想永久保存,都是保存于文件中,毫无疑问,一个文件仅仅只能存在于某一台机器上。如果我们暂且忽略直接基于文件来存取数据的效率问题,并且假设程序所有的组件都运行在一台机器上,那么用文件存取数据,并没有问题。很不幸,这些假设都是你自......
  • 2023.5.8 设计模式简介
    1,设计模式概述1.1软件设计模式的产生背景"设计模式"最初并不是出现在软件设计中,而是被用于建筑领域的设计中。1977年美国著名建筑大师、加利福尼亚大学伯克利分校环境结构中心主任克里斯托夫·亚历山大(ChristopherAlexander)在他的著作《建筑模式语言:城镇、建筑、构造》中描述......
  • JAVA快速开发框架 一键生成表单模板代码
    从计算机诞生开始,虽然编程的形式随着硬件及软件的不断进步而不停迭代,但是从事计算机技术行业的人员始终与编写代码的任务紧密联系在一起。因此如何提高软件开发的效率和质量,一直是软件工程领域的重要问题之一。这一方面是由于在不同软件开发过程中存在大量相似代码复用的情况,多次......
  • JAVA快速开发框架 一键生成表单模板代码
    从计算机诞生开始,虽然编程的形式随着硬件及软件的不断进步而不停迭代,但是从事计算机技术行业的人员始终与编写代码的任务紧密联系在一起。因此如何提高软件开发的效率和质量,一直是软件工程领域的重要问题之一。这一方面是由于在不同软件开发过程中存在大量相似代码复用的情况,多次编......
  • python Django校验表单登录案例
    定义一个视图函数,用于处理登录表单的提交动作。在该视图函数中,使用request.POST.get()方法获取POST请求中提交的用户名和密码数据,具体代码如下:fromdjango.shortcutsimportrender,redirectfromdjango.contrib.authimportauthenticate,logindeflogin_view(requ......
  • 一分钟学会、三分钟上手、五分钟应用,快速上手责任链框架详解 | 京东云技术团队
    作者:京东物流覃玉杰1.pie简介责任链模式是开发过程中常用的一种设计模式,在SpringMVC、Netty等许多框架中均有实现。我们日常的开发中如果要使用责任链模式,通常需要自己来实现,但自己临时实现的责任链既不通用,也很容易产生框架与业务代码耦合不清的问题,增加CodeReview的成本......
  • vc编译器简介
    大家可能一直在用VC开发软件,但是对于这个编译器却未必很了解。原因是多方面的。大多数情况下,我们只停留在“使用”它,而不会想去“了解”它。因为它只是一个工具,我们宁可把更多的精力放在C++语言和软件设计上。我们习惯于这样一种“模式”:建立一个项目,然后写代码,然后编译,反反复复调......