初学Django

Django

Web应用

# python就业方向
1. web方向 >>>> 通过浏览器访问的应用程序 >>>> 做网页
2. 爬虫岗位 >>>> 爬取数据
3. 数据分析 >>>> 工作岗位不够多
4. AI >>>> 没有工作经验的不要去 >>>> 需要数学
# 机遇与挑战并行

web:
"""
	通过浏览器访问的应用程序
	c/s架构
	b/s架构 >>>> 浏览器--->服务端
	web与应用程序的优点:
		1. 只需要有一个浏览器就行
		2. 节省内存空间
		3. 不需要更新
	web应用程序的缺点:
		特别依赖服务端程序的健壮性,一但服务端宕机,客户端就用不了了
	web框架:
		框架就是别人写好的模板,直接在模板上的固定位置写东西
		Django框架是一款专门用来写web的框架
"""

b/s架构

# 浏览器 ---> 服务端
# 通过socket写服务端

手写web框架

import socket

server = socket.socket()
server.bind(('127.0.0.1', 9000))
server.listen(3)
while True:
    conn, addr = server.accept()  # 接受客户端发来的信息,每个服务端都遵循http
    data = conn.recv(1024)
    data = data.decode('utf-8')
    current_path = data.split()[1]
    conn.send(b'HTTP/1.1 200 \r\n\r\n')  # http的流式协议,必须要有
    if current_path == '/index':
        conn.send(b'index')
    elif current_path == '/login':
        conn.send(b'login')
    else:
        conn.send(b'404')
    conn.close()

借助于wsgiref模块

# 1. socekt不需要自己写了
# 2. HTTP的数据也不许自己处理了

"""
	urls.py	=====================>后缀与视图函数的对应关系---------->路由文件
	views.py=======================>视图函数,以后专门用来写逻辑功能的
	templates文件夹===================>专门用来存储html文件
"""

# 以后你要是想增加新功能,只需要在urls.py中写路由,然后在视图函数中写功能即可

动静态网页

1. 静态网页
	# 只有页面,数据是写死的,比如html文件
    
2. 动态网页
	# 页面中得数据是从数据库中查询出来的

python中三大主流框架

1. Django
	# 特点:大,全。重量级的框架。自带很多功能和模块,也带了很多的文件
2. flask
	# 特点:小,精。轻量级的框架。自身没啥文件,一样可以做Django能做的事。严重依赖第三方模块想实现更多的功能就要不停的安装模块。模块装的足够多,就和Django差不多了
3. tornado
	# 特点:异步非阻塞,支持高并发
# 目前学习Django框架,后面学习flask框架,框架很多不必全学,框架基本都差不多,再学起来比较容易

Django框架

1. 版本
	1.x  2.x 3.x(不学)
    # 我们以1.x为主,附带2.x的区别,1.x和2.x大部分是相同的,在drf中得学习,必须用2.x
2. 安装Django
	pip install django===1.11

# 以后我们自己装的第三方模块都在:site-packages文件夹下面
3. 如何验证django是否安装成功
	# 在cmd中,输入django-admin,看一些是否有反应,如果有反应就说明安装成功了.

如何使用

1. 创建项目
	# 1. 命令行创建
    	'''你可以提前切换文件夹路径,用来存储django框架的文件位置'''
    	django-admin startproject 项目名
        django-admin startproject myfirst
    # 2. pycharm创建
    	
2. 启动django项目
	 # 1. cmd启动
    	先切换路径到manage.py这一层下面
        python3 manage.py runserver # 默认启动在本地电脑上
     # 2. pycharm启动
    	在上边导航栏中点击绿色按钮启动
"""Next, start your first app by running python manage.py startapp [app_label]."""
3. 创建应用
	"""
		Django框架就是一款专门用来开发web应用的
		django这个框架类类似于是一所大学(空壳)
		应用相当于是一所大学里面的二级学院
		所以,应用是可以有多个的
		eg:我们使用django开发一个淘宝出来
			用户相关的功能----------->user
			订单相关的功能------------>order
			客服相关的功能------------>kefu
			发货相关的功能------------>fahuo
			...
		每一个应用就是一个独立的功能
	"""
    # 每一个django项目至少要有一个应用!!!
 4. 如何创建应用
	# 1. cmd创建
    ********************************************************************
                python3 manage.py startapp 应用名
                python3 manage.py startapp app01
    ********************************************************************
    
    '''
    	应用名都应该做到见名知意:
    		user
    		order
    		course
    		...
   		为了方便教学,我们统一使用app01/02/03/04...
   		
    '''
    # 2. pycharm创建应用
    	新建项目的时候,一块创建应用
    # 2.1
    	Tools
        	run manage.py task
            		# 在这个里面命令前面的python3 manage.py省略不写
5. 当应用创建出来之后,第一件事先去做:
# 去配置文件setting.py中去注册应用,以后每创建出来一个应用,都要去这里面去注册,如果不注册,你创建出来的应用,不生效.
********************************************************************************
    INSTALLED_APPS = [
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        # 'app01.apps.App01Config', # 注册应用,全称
        'app01', 

    ]
************************************************************************************

注意事项

1. 一个pycharm窗口只打开一个django项目
2. 以后再django项目所有的文件名都不能出现中文.

命令行创建和pycharm创建的区别

1. 命令行创建的项目没有templates文件夹
	# 我们自己手动创建一个文件夹
2. 配置文件中:
	TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [], # 默认没有东西
    },
]


2. pycharm创建的项目会自动创建templates文件夹
配置文件中:
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates')] # pycharm创建出来的有东西
    }
# 在配置文件中统一改成:
    	'DIRS': [os.path.join(BASE_DIR, 'templates')]

主要文件介绍

myfirst			# 项目名称
	app01		# 应用名称
        migrations # 它是数据库迁移记录----------->跟数据库相关的时候才会用到
        __init__.py
        admin.py  # 跟后台相关的
        apps.py   # 跟注册一些东西相关的
        models.py # 这个是跟数据库相关的文件(重要)
        tests.py  # 这个是测试文件
        views.py  # 视图函数----------->主要写一些功能逻辑
	app02
myfirst
	__init__.py
    settings.py		# django框架的配置文件
    urls.py			# 路由文件:后缀和视图函数的对应关系
    wsgi.py			# 是一个服务器------->wsgiref(支持的并发量小)----------->uwsgi服务器----->支持的并发量高
db.sqlite3		# django自带的数据库,方便我们测试使用
manage.py        # 这个是django框架的启动文件,入口文件

django三板斧

from django.shortcuts import render, HttpResponse, redirect
1. HttpResponse
		
2. render

3. redirect

def func(request):
    print('from func')
    # return HttpResponse("ok!!!") # 里面写的都是字符串
    # return render(request,'index.html') # 加载html文件
    # return redirect('http://www.baidu.com')  # 重定向
    return redirect('/home/')  # 重定向

posted @ 2023-04-20 21:16  橘子熊何妨  阅读(33)  评论(0)    收藏  举报