文章目录

  • 一、总述
  • 二、Django的实现流程
  • 三、django的命令行
  • 四、配置文件(settings)
    • 1、MEDIA_ROOT和MEDIA_URL
    • 2、STATIC_ROOT和STATIC_URL

一、总述

Python的WEB框架主要分为以下:

流程
基本配置
路由系统
视图view
模板template
Model
中间件
Form
认证系统
CSRF
分页
Cookie
Seesion
缓存
序列化
信号
admin

二、Django的实现流程

#1 创建project
django-admin startproject mysite
—mysite
—settings.py
—url.py
—wsgi.py
— manage.py(启动文件)

#2 创建APP
python mannage.py startapp app01

#3 settings配置

   TEMPLATESSTATICFILES_DIRS=(os.path.join(BASE_DIR,"statics"),)STATIC_URL = '/static/'我们只能用 STATIC_URL,但STATIC_URL会按着你的STATICFILES_DIRS去找

#4 根据需求设计代码
url.py
view.py

#5 使用模版
render(req,“index.html”)

#6 启动项目
python manage.py runserver 127.0.0.1:8090

#7 连接数据库,操作数据
model.py

三、django的命令行

1、django-admin.py 是Django的一个用于管理任务的命令行工具,manage.py是对django-admin.py的简单包装,每一个Django Project里都会有一个mannage.py

  • manage.py ----- Django项目里面的工具,通过它可以调用django shell和数据库等
  • settings.py ---- 包含了项目的默认设置,包括数据库信息,调试标志以及其他一些工作的变量
  • urls.py ----- 负责把URL模式映射到应用程序

2、在命令行创建blog应用:python manage.py startapp blog

3、在命令行启动django项目:python manage.py runserver 8090此处端口为8090

4、(1)生成同步数据库的脚本:python manage.py makemigrations
(2)同步数据库: python manage.py migrate

注意:在开发过程中,数据库同步误操作之后,难免会遇到后面不能同步成功的情况,解决这个问题的一个简单粗暴方法是把migrations目录下的脚本(除__init__.py之外)全部删掉,再把数据库删掉之后创建一个新的数据库,数据库同步操作再重新做一遍。

5、清空数据库:python manage.py flush

6、查询某个命令的详细信息: django-admin.py help startapp
admin 是Django 自带的一个后台数据库管理系统

7、启动交互界面 :python manage.py shell

8、查看详细列表(在忘记子名称的时候特别有用):python manage.py

9、创建超级管理员:python manage.py createsuperuser

10、显示并记录所有数据的改动:python manage.py makemigrations

四、配置文件(settings)

1、MEDIA_ROOT和MEDIA_URL

静态文件的处理又包括STATIC和MEDIA两类,这往往容易混淆,在Django里面是这样定义的:

  • MEDIA:指用户上传的文件,比如在Model里面的FileFIeld,ImageField上传的文件。如果你定义:
    MEDIA_ROOT=c:\temp\media,那么File=models.FileField(upload_to=“abc/”)#,上传的文件就会被保存到c:\temp\media\abc
  • 例如:
 class blog(models.Model):  Title=models.charField(max_length=64)  Photo=models.ImageField(upload_to="photo")
#这样上传的图片就上传到c:\temp\media\photo,而在模板中要显示该文件,则再这样写

在settings里面设置的MEDIA_ROOT必须是本地路径的绝对路径,一般是这样写:

 BASE_DIR= os.path.abspath(os.path.dirname(__file__))  MEDIA_ROOT=os.path.join(BASE_DIR,'media/').replace('\\','/')
  • MEDIA_URL是指从浏览器访问时的地址前缀:
     MEDIA_ROOT=c:\temp\media\photo  MEDIA_URL="/data/"
  • 在开发阶段,media的处理由django处理:
    访问http://localhost/data/abc/a.png就是访问c:\temp\media\photo\abc\a.png
    # 在模板里面这样写<img src="{{MEDIA_URL}}abc/a.png">

在部署阶段最大的不同在于你必须让web服务器来处理media文件,因此你必须在web服务器中配置,以便能让web服务器能访问media文件

2、STATIC_ROOT和STATIC_URL

STATIC主要指的是如css,js,images这样文件,在settings里面可以配置STATIC_ROOT和STATIC_URL
配置方式与MEDIA_ROOT是一样的,但是要注意:

  • STATIC_ROOT:在settings里面设置,一般用来放一些公共的js,css,images等
  • app的static文件夹,在每个app所在文夹均可以建立一个static文件夹,然后当运行collectstatic时,Django会遍历INSTALL_APPS里面所有app的static文件夹,将里面所有的文件复制到STATIC_ROOT。
    因此,如果你要建立可复用的app,那么你要将该app所需要的静态文件放在static文件夹中

也就是说一个项目引用了很多app,那么这个项目所需要的css,images等静态文件是分散在各个app的static文件的,当你要发布时,需要将这些分散的static文件收集到一个地方就是STATIC_ROOT

  • STATIC文件还可以配置STATICFILES_DIRS,指定额外的静态文件存储位置(STATIC_URL的含义与MEDIA_URL类似)
STATIC_URL = '/static/'               #别名STATICFILES_DIRS = (os.path.join(BASE_DIR,"statics")  #实际名 ,即实际文件夹的名字)

django对引用名和实际名进行映射,引用时,都是按别名来的,不会按实际名去找

  • statics文件夹写在不同的app下,静态文件的调用:
STATIC_URL = '/static/'STATICFILES_DIRS=(('hello',os.path.join(BASE_DIR,"app01","statics")) ,)# 在html文件中:<script src="/static/hello/jquery-1.8.2.min.js"></script>
  • 在网页中引用js文件
STATIC_URL = '/static/'{% load staticfiles %}# <script src={% static "jquery-1.8.2.min.js" %}></script>

Python框架篇之Django(基本流程、命令行、配置文件)相关推荐

  1. Python框架篇之Django(Django项目搭建全过程、Web框架与Django)

    文章目录 一.Web框架与Django本质 二.从安装到实现一个完整的Django项目 一.Web框架与Django本质 1.Web框架的理解 框架,特指为解决一个开放性问题而设计的具有一定约束性的支 ...

  2. Python框架篇之Django(Models数据表的创建、数据库配置)

    文章目录 一.数据库的配置 二.Models数据表的创建 三.在Pycharm中显示 一.数据库的配置 1. django默认支持 sqlite,mysql, oracle,postgresql数据库 ...

  3. Python框架篇之Django(路由系统URL、视图函数views)

    文章目录 一.路由系统(URL) 二.视图函数(views) 一.路由系统(URL) 1.URL配置 (URLconf)就像Django 所支撑网站的目录.它的本质是URL模式以及要为该URL模式调用 ...

  4. Python框架篇之Django(ORM对象关系映射)

    文章目录 一.认识ORM 二.模型常用字段类型 三.数据表的增删改查 四.配置日志 一.认识ORM 1.概念:简单来说,就是用面向对象的方式去操作数据库的创建表以及增删改查等操作. 2.ORM的优点 ...

  5. Python框架篇之Django(Template模版:标签tag、自定义filter、extend模板继承)

    文章目录 一.标签的使用(tag) 二.自定义filter和simple_tag 三.extend模板继承 一.标签的使用(tag) 1.语法格式:{% tags %} 2.提供的几种标签 {% if ...

  6. Python框架篇之Django(Template基础:模板语法、过滤器filter)

    文章目录 一.Template介绍 二.模板语法 三.过滤器(filter) 一.Template介绍 Python 代码编写和 HTML 设计是两项不同的工作,大多数专业的网站开发环境都将他们分配给 ...

  7. Python框架篇之Django(Models的多表操作)

    一对多 1.添加记录 #publish_id=2Book.objects.create(name="Python进阶",price=77,pub_date="2019-1 ...

  8. uboot流程——命令行模式以及命令处理介绍

    [uboot] (第六章)uboot流程--命令行模式以及命令处理介绍 2016年11月14日 20:39:26 阅读数:4323 以下例子都以project X项目tiny210(s5pv210平台 ...

  9. Python 打造基于有道翻译的命令行翻译工具(命令行爱好者必备)

    Python 打造基于有道翻译的命令行翻译工具(命令行爱好者必备) 之前基于百度写了一篇博文 Python 打造基于百度翻译的命令行翻译工具,本来这工具用得挺好的.但是没想到,近期处于不知道啥原因,不 ...

最新文章

  1. suse linux 软件包安装,SUSE Linux 11系统rpm包离线安装GCC
  2. th:text为null报错_小猿圈web前端之vue-cli项目打包完成后运行文件路径报错问题
  3. 供应链金融服务平台:应收、预付和存货融资业务
  4. css布局左右2边固定,中间自适应
  5. 原文翻译:关于机器学习,我们忽视的东西
  6. Java读取文件时第一行出现乱码“?”问号
  7. 基于Android6.0~9.0的适配
  8. 最耐用的手机盘点 网友:我这个能用到品牌商“破产”!
  9. IDC:大数据——数字化转型时代的大商机
  10. fanuc系统屏蔽服务器,FANUC系统常见的3种锁轴方法及坐标轴字母含义
  11. Python 贪吃蛇 代码
  12. office 论文 页码_Word中的论文页码怎么设置?
  13. Python基础更新
  14. 【控制篇 / 策略】(5.4) ❀ 03. Explicit Web Proxy 显式web代理 ❀ FortiGate 防火墙
  15. mysql中筛选不重复值_MYSQL中筛选不重复记录值的示例
  16. 构建地形系统(翻译)1
  17. 云天视界传媒浅谈无人机航拍技巧
  18. python安装包问题小结
  19. Qt官方示例-正则测试工具
  20. Simulink仿真示波器波形出现小圆圈

热门文章

  1. 小程序飞入购物车特效
  2. 计算机无论采用何种方式接入网络,自考计算机网络实用技术考核知识点之Internet的结构及其接入方式...
  3. android怎么引用ttf字体,android 自定义字体ttf使用的几种方法
  4. win8.1重装系统计算机管理打不开,Windows8计算机打不开192.168.0.1怎么办
  5. 改进的有效边表算法_优硕微展 | 张和慧:基于邻域保持嵌入算法的间歇过程故障检测研究...
  6. 力控数据写入mysQL_绝对干货,教你4分钟插入1000万条数据到mysql数据库表,快快进来...
  7. RMAN 目录管理维护
  8. php js绝对路径,javascript将相对路径转绝对路径示例_基础知识
  9. java获取数组穷举_被BAT疯抢的Java工程师,都是怎么拿到年薪50W的offer
  10. Android自定义控件学习(五)-------自定义绘图