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

2023-05-16

文章目录

    • 一、总述
    • 二、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配置

   TEMPLATES

   STATICFILES_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>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

随机推荐