Django框架的安装及运行、必会三板斧

Django框架

python三大主流web框架

django

特点: 大而全  自带的功能特别特别特别的多  类似于航空母舰
不足之处: 有时候过于笨重

socket部分(别人的)   wsgiref模块
路由匹配(自己的)
模板语法(自己的)      没有jinja2好用 但是也很方便

flask

特点: 小而精  自带的功能特别特别的少  类似于游骑兵
第三方模块特别特别特别的多  如果将flask第三方的模块加起来完全可以盖过django
并且越来越像django
不足之处:
    比较依赖于第三方的开发者
    受限于版本问题(框架更新导致很多模块会出现问题)
    
socket部分(别人的)   werkzeug(内部还是wsgiref模块)
路由匹配(自己的)
模板语法(别人的)      jinja2

tornado

特点:异步非阻塞  支持高并发
    牛逼到甚至可以开发游戏服务器
不足z:
    我暂时不会
    
socket部分(自己的)
路由匹配(自己的)
模板语法(自己的)

补充:

http的默认端口号:80
https的默认端口号:443
MTV模式(python):
    	M: model(模型层:跟数据相关的)
        T: templates(模板:html页面)  
        V:view(主要写逻辑的)


django版本与安装

版本

1.X        2.X       3.X(直接忽略)
1.X和2.X本身差距也不大 主要以1.X为例 会讲解2.X区别
话术:  公司之前用的1.8 满满过渡到了1.11版本 有一些项目用的2.0

pycharm安装django

image

image

image

命令行安装django

要确保python解释器的路径在环境变量中
然后打开命令行  直接在命令行中输入
pip3 install django==1.11.11就行了

验证django是否安装成功

终端输入django-admin看看有没有反应

image

django项目运行

命令行运行

# 1.创建django项目
先切换到想要创建项目的盘 例如:
D:
django-admin startproject 项目名称
# 2.启动django项目
一定要先切换到项目目录下
cd 项目名称
python3 manage.py runserver(这里按照本机的python解释器的名字 eg:python3.exe)
python3 manage.py runserver 127.0.0.1:8080  # 手动指定ip及端口
python3 manage.py runserver 8080  # 手动指定端口(ip为127.0.0.1)
# http://127.0.0.1:8000/  出现这个就行了

image

pycharm运行

image

image

应用介绍

"""
django是一款专门用来开发app的web框架

django框架就类似于是一所大学(空壳子)
app就类似于大学里面各个学院(具体功能的app)
	比如开发淘宝
		订单相关
		用户相关
		投诉相关
		创建不同的app对应不同的功能

一个app就是一个独立的功能模块
"""
***********************创建的应用一定要去配置文件中注册**********************
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'app01.apps.App01Config',  # 全写
  	'app01',			 # 简写
]
# 创建出来的的应用第一步先去配置文件中注册 其他的先不要干
ps:你在用pycharm创建项目的时候 pycharm可以帮你创建一个app并且自动注册
***********************************************************************

image

创建应用

命令行创建

python3 manage.py startapp 应用名
    应用名应该做到见名知意
      user
      order
      web
      ...

pycharm创建

方式1:

image

方式2:

image

修改端口

image

image

命令行与pycharm创建的区别

1. 命令行创建不会自动有templatew文件夹 需要你自己手动创建  而pycharm会自动帮你创建并且还会自动在配置文件中配置对应的路径
2. 命令行创建不会在配置文件中自动配置路径,而pycharm会自动帮你在配置文件中配置对应的路径
# pycharm创建
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates')]
]
# 命令行创建
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [],
]
"""
也就意味着你在用命令行创建django项目的时候不单单需要创建templates文件夹还需要去配置文件中配置路径
'DIRS': [os.path.join(BASE_DIR, 'templates')]
"""

主要文件介绍

-mysite项目文件夹
	--mysite文件夹
  	---settings.py	    # 整个django项目的全局配置文件
    ---urls.py		    # 路由与视图函数对应关系(路由层)
    ---wsgi.py			# wsgiref服务器, WSGI协议,uwsgi服务器
  --manage.py			# django的入口文件
  --db.sqlite3			# django自带的sqlite3数据库(小型数据库 功能不是很多还有bug)
  --app01文件夹
  	---admin.py			# django自带的后台管理系统
    ---apps.py			# 注册使用(忽略)
    ---migrations文件夹   # 保存数据库迁移记录
    ---models.py		 # 数据库相关的 模型类(orm)
  	---tests.py			 # 测试脚本
    ---views.py			 # 视图函数(视图层) 用来写逻辑的

django小白必会三板斧

HttpResponse

返回字符串类型的数据
例子:
    1.在view.py文件中
    def index(request):
        return HttpResponse('雷猴啊,靓仔.')
    2.在urls.py文件里
    from app01 import views
    urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'index/', views.index),  # 把刚定义的index函数添加进去
]

image

render

返回html文件的
例子:
    在templates文件里里创建myfirst.html文件
    <h2>我的第一次</h2>
    def index(request):
   		return render(request, 'myfirst.html')

image

# 第一种传值方式:更加的精确 节省资源
	return render(request,'myfirst.html',{'data':user_dict,'date':123})
# 第二种传值方式:当你要传的数据特别多的时候
"""locals会将所在的名称空间中所有的名字全部传递给html页面"""
	return render(request,'myfirst.html',locals())

image

redirect(重定向)

例1:跳转别人的网站

重定向网址
    def index(request):
    	return redirect('https://www.baidu.com/')

image

例2:跳转自己的网站(直接写后缀)

def index(request):
    return redirect('/haha/')

def haha(request):
    return HttpResponse('我是django妹子')
在urls.py文件里
    from app01 import views
    urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'index/', views.index),  
    url(r'haha/', views.haha),  # 把刚定义的haha函数添加进去
]

image

posted @ 2022-02-23 15:04  zong涵  阅读(123)  评论(0编辑  收藏  举报