Python框架篇之Django(基本流程、命令行、配置文件)
文章目录
- 一、总述
- 二、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(基本流程、命令行、配置文件)相关推荐
- Python框架篇之Django(Django项目搭建全过程、Web框架与Django)
文章目录 一.Web框架与Django本质 二.从安装到实现一个完整的Django项目 一.Web框架与Django本质 1.Web框架的理解 框架,特指为解决一个开放性问题而设计的具有一定约束性的支 ...
- Python框架篇之Django(Models数据表的创建、数据库配置)
文章目录 一.数据库的配置 二.Models数据表的创建 三.在Pycharm中显示 一.数据库的配置 1. django默认支持 sqlite,mysql, oracle,postgresql数据库 ...
- Python框架篇之Django(路由系统URL、视图函数views)
文章目录 一.路由系统(URL) 二.视图函数(views) 一.路由系统(URL) 1.URL配置 (URLconf)就像Django 所支撑网站的目录.它的本质是URL模式以及要为该URL模式调用 ...
- Python框架篇之Django(ORM对象关系映射)
文章目录 一.认识ORM 二.模型常用字段类型 三.数据表的增删改查 四.配置日志 一.认识ORM 1.概念:简单来说,就是用面向对象的方式去操作数据库的创建表以及增删改查等操作. 2.ORM的优点 ...
- Python框架篇之Django(Template模版:标签tag、自定义filter、extend模板继承)
文章目录 一.标签的使用(tag) 二.自定义filter和simple_tag 三.extend模板继承 一.标签的使用(tag) 1.语法格式:{% tags %} 2.提供的几种标签 {% if ...
- Python框架篇之Django(Template基础:模板语法、过滤器filter)
文章目录 一.Template介绍 二.模板语法 三.过滤器(filter) 一.Template介绍 Python 代码编写和 HTML 设计是两项不同的工作,大多数专业的网站开发环境都将他们分配给 ...
- Python框架篇之Django(Models的多表操作)
一对多 1.添加记录 #publish_id=2Book.objects.create(name="Python进阶",price=77,pub_date="2019-1 ...
- uboot流程——命令行模式以及命令处理介绍
[uboot] (第六章)uboot流程--命令行模式以及命令处理介绍 2016年11月14日 20:39:26 阅读数:4323 以下例子都以project X项目tiny210(s5pv210平台 ...
- Python 打造基于有道翻译的命令行翻译工具(命令行爱好者必备)
Python 打造基于有道翻译的命令行翻译工具(命令行爱好者必备) 之前基于百度写了一篇博文 Python 打造基于百度翻译的命令行翻译工具,本来这工具用得挺好的.但是没想到,近期处于不知道啥原因,不 ...
最新文章
- suse linux 软件包安装,SUSE Linux 11系统rpm包离线安装GCC
- th:text为null报错_小猿圈web前端之vue-cli项目打包完成后运行文件路径报错问题
- 供应链金融服务平台:应收、预付和存货融资业务
- css布局左右2边固定,中间自适应
- 原文翻译:关于机器学习,我们忽视的东西
- Java读取文件时第一行出现乱码“?”问号
- 基于Android6.0~9.0的适配
- 最耐用的手机盘点 网友:我这个能用到品牌商“破产”!
- IDC:大数据——数字化转型时代的大商机
- fanuc系统屏蔽服务器,FANUC系统常见的3种锁轴方法及坐标轴字母含义
- Python 贪吃蛇 代码
- office 论文 页码_Word中的论文页码怎么设置?
- Python基础更新
- 【控制篇 / 策略】(5.4) ❀ 03. Explicit Web Proxy 显式web代理 ❀ FortiGate 防火墙
- mysql中筛选不重复值_MYSQL中筛选不重复记录值的示例
- 构建地形系统(翻译)1
- 云天视界传媒浅谈无人机航拍技巧
- python安装包问题小结
- Qt官方示例-正则测试工具
- Simulink仿真示波器波形出现小圆圈
热门文章
- 小程序飞入购物车特效
- 计算机无论采用何种方式接入网络,自考计算机网络实用技术考核知识点之Internet的结构及其接入方式...
- android怎么引用ttf字体,android 自定义字体ttf使用的几种方法
- win8.1重装系统计算机管理打不开,Windows8计算机打不开192.168.0.1怎么办
- 改进的有效边表算法_优硕微展 | 张和慧:基于邻域保持嵌入算法的间歇过程故障检测研究...
- 力控数据写入mysQL_绝对干货,教你4分钟插入1000万条数据到mysql数据库表,快快进来...
- RMAN 目录管理维护
- php js绝对路径,javascript将相对路径转绝对路径示例_基础知识
- java获取数组穷举_被BAT疯抢的Java工程师,都是怎么拿到年薪50W的offer
- Android自定义控件学习(五)-------自定义绘图