Django框架

想要正常运行django项目所需要知道的注意事项

1. 计算机名称不能有中文,不然bug在哪儿你都不知道!

2. 项目名和py文件名最好也不要使用中文,使用中文极容易出现各种莫名其妙的报错,使用拼 音也会显得非常的不专业

3. 在pycharm窗口只能有一个django在运行状态,如果多开永远只有第一个在运行,且一个pycharm窗口就是一个项目,不要在窗口下面的子文件夹创建项目、不要和其他项目并列。

4. 浏览器一定要设置为不保存缓存的,因为保存缓存可能会导致这次调试的前端效果仍旧是上次改动前的效果,浏览器还没读修改后的内容,用的是缓存数据

清除浏览器缓存
1.在浏览器页面右键点击检查
2.点击设置齿轮图标 Settings
3.找到 Network
4.Disble cache(while DevTools is open) 勾选上

5. django版本问题

1.X版本,2.X版本,3.X版本,推荐使用1.X版本中的1.11.11版本,原因后面文章中会介绍,感兴趣可找度娘

django命令行或者pycharm下载

pip3 install django==1.11.11

 # 测试是否安装完成
   django-admin

命令行模式创建项目

# 1.创建django项目
    django-admin startproject 项目名
    
# 2.启动django项目
    cd 项目名
    python3 manage.py runserver ip:port
     ps:如果报错需要修改py文件源码
    D:Python38libsite-packagesdjangocontribadminwidgets.py
    152行后面的逗号去掉即可!!!
        '%s=%s' % (k, v) for k, v in params.items()
# 3.创建app
    python manage.py startapp app名字

app概念

django是一款专注于开发app(应用)的软件

我们创建一个django项目之后类似于创建了一所大学 而app就类似于大学里面的各个学院,每个学院都可以有自己独立的各项功能职责 django相当于是一个空壳子用来给各个学院提供资源!!!

强调:我们手动创建的app一定要去settings文件中注册才能生效

pycharm快捷方式创建项目

命令行与pycharm创建不同点

1.命令行创建django项目不会自动创建templates模板文件夹

2.命令行也不会自动在配置文件中配置模板文件夹路径

也就意味着在命令行创建django项目的时候不单单需要手动在项目目录创建templates模板文件夹,还需要去配置文件中手动添加templates模板文件夹路径,如下图

django目录结构

mysite
├─ app01文件夹     # 应用(可以有多个)
    ├─ migrations文件夹   # 存储数据库记录相关(类似于操作日志)
    ├─ admin.py    # django后台管理
    ├─ apps.py     # 注册app
    ├─ models.py   # 数据库相关(模型层)
    ├─ tests.py    # 测试文件
    └─ views.py    # 视图函数(视图层)
├─ mysite文件夹      # 项目同名文件夹
   ├─ settings.py  # django暴露给用户可以配置的配置文件
   ├─ urls.py    # 路由与视图函数(可以是函数也可是类)对应关系(路由层)
   └─ wsgi.py      # 忽略    
├─ templates      # 模板文件(存储html文件)(模板层)
├─ db.sqlite3        # django自带的小型数据库
└─ manage.py        # django入口文件

django小白必会三板斧

1.HttpResponse(value) 返回字符串类型的数据

2.render (request,path,values) 返回html页面,还可以使用模板语法

3.redirect  重定向

# app下的views.py文件中导入render,HttpResponse,redirect
from django.shortcuts import render,HttpResponse,redirect 

# Create your views here.
def index(request):
  # 视图函数必须要接收一个形参request
    return HttpResponse('字符串')

def login(request):
    user_dict = {'username':'joson','age':18}
    # 第一种传值方式:更加精确,节省资源
    # return render(request,'myfirst.html',{'data':user_dict,'deta':123})
    # 第二种传值方式:当你要传的值特别多的时候
        # locals会将所在名称空间所有的名字全部传递给html界面
    return render(request,'myfirst.html',locals())

def home(request):
    # return redirect('http://www.baidu.com')
    return redirect('/index')

另外django还有一个很人性化的地方

  运行中的项目当你修改你的项目代码后django会自动重启,有时候会比较慢,你可以手动点击重启

从来就没有正确的选择,我们只不过是要努力奋斗,使当初的选择变得正确。
原文地址:https://www.cnblogs.com/gfeng/p/14531132.html