初识Django
一、Django概述
Django框架将这个工作过程细分为如下四层去实现
1、路由层(根据不同的地址执行不同的视图函数,详见urls.py)
2、视图层(定义处理业务逻辑的视图函数,详见views.py)
3、模型层 (跟数据库打交道的,详解models.py)
4、模板层(待返回给浏览器的html文件,详见templates)
二、初识Django
1. 注意事项
-
计算机名称不能有中文
-
python解释器不要使用3.7版本 推荐使用版本3.4~3.6
-
一个pycharm窗口 只能跑一个项目
2. 版本问题
django版本以1.11.11为主(1.11.9~1.11.13)
3. 如何检验django是否安装成功
命令行敲 django-admin
4. 命令行创建项目
-
创建django项目
django-admin startproject 项目名(例如mysite)
-
启动django项目
切换到项目文件夹下
python3 manage.py runserver
python3 manage.py runserver 127.0.0.1:8080
-
创建应用(django支持多app开发)
python3 manage.py startapp app01
注意:
-
不会自动帮你创建templates文件夹
-
配置文件中不会自动帮你书写templates文件路径
5. app的概念
django是一个以开发app为主要功能的web框架
app就是application应用的意思
一个django项目就是一所大学(空的架子 本身没有任何功能)
而app就类似于大学里面的各个学院
一个空的django本身没有任何作用 仅仅是为app提高前期的环境配置
你可以根据功能的不同 开发多个app
一个app对应一个具体的功能模块
用户相关的功能 用户相关的app
订单相关的功能 订单相关的app
商品相关的功能
商品相关的app每一个app都有自己独立的功能
注意:
创建好的app需要在django配置文件中注册方可生效
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
#'app01' # 简便写法
'app01.apps.App01Config' # 最完整的写法
]
6. pycharm创建项目
1.创建应用的时候 可以使用简便方式
Tools >>> run manage.py task
2.一定要确保同一个端口
同一时间只能启一个django项目
3.配置文件中针对templates文件夹的路径 如果是空的需要你手动配置
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',
],
},
},]
7. django文件功能
django项目名
项目同名的文件夹
settings.py 暴露给用户可以配置的配置文件
urls.py 路由与视图函数对应关系
manage.py django的入口文件
应用名文件夹
migrations文件夹 所有数据库相关的操作记录
admin.py django admin后台管理
apps.py 注册app使用
models.py 放所有数据库相关的模型类
tests.py 测试文件
views.py 处理业务逻辑的视图函数
8. django小白必会三板斧
1.HttpResponse 返回字符串
2.render 返回html文件,可以给html页面传值
def login(request):
user_dic = {'username':'jason','password':'123'}
return render(request,'login.html',{'xxx':user_dic})
3.redirect 重定向
- 直接写你本网站的路径后缀
- 也可以全路径
def home(request):
#return redirect('/login') # 重定向
return redirect('https://www.baidu.com') # 重定向
注意
1.django默认是自动重启的
2.重启机制
-
内有检测机制 实时检测所有文件的变化
-
有时候会产生 你代码还没写完 就自动重启报错的情况 不用管
3.每次写完代码之后 自己手动重启