百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

面试官总结出来的:Django命令和项目结构的详细介绍

bigegpt 2024-09-20 13:52 3 浏览

写给前端看的

教程

1. Django 命令

Django 安装成功,系统便拥有了 django-admin.py 命令。执行 django-admin.py startproject bitcms 会自动生成项目 bitcms。

项目初始目录结构如下:

bitcms └── bitcms ├── __init__.py ├── settings.py ├── urls.py └── wsgi.py ├── manage.py

其中,需要特别注意 manage.py 文件,它是 Django 项目管理的命令行工具。进入项目根目录,通过 manage.py 可以进行启动服务、新建应用、同步数据、创建用户等。

这篇文章分享之前我还是要推荐下我自己的前端群:611428142,不管你是小白还是大牛,小编我都挺欢迎,不定期分享干货,包括我自己整理的一份2017最新的前端资料和零基础入门教程,欢迎初学和进阶中的小伙伴。。

前端同学可能用到 Django 命令:

命令参数说明
django-admin.py --version查看 Django 版本。例如:我的 Django 版本为 1.8.12
python manage.py syncdb同步数据,文档称自 1.7 版起已弃用
python manage.py migrate启动项目时,可能会看到红色提醒You have unapplied migrations; your app may not work properly until they are applied.按照提示,执行 python manage.py migrate 即可。这时,会在项目根目录生成 db.sqlite3 数据文件,保存 Django 自带一些应用数据
python manage.py runserver启动 Django 服务。默认在 127.0.0.1:8000 启动,如果提示 Error: That port is already in use. 说明端口被占用。可以选择在其他端口(如 8080)启动:python manage.py runserver 8080
python manage.py startapp blog新建一个应用(如:blog)。执行成功,会在项目根目录生成 blog 应用目录。blog 目录下的文件在下一小节介绍
python manage.py collectstatic把 app 下 static 中的静态文件全部拷贝到 STATIC_ROOT 路径指定的文件夹下。变量STATIC_ROOTsettings.py中设置

Tips:

使用 python manage.py 系列命令时,通常会将具体参数写入项目配置目录下的单独配置文件,如 bitcms/settings_dev.py。<br>

然后,通过连接 --settings=bitcms.settings_dev 执行。以我们 bitcms.com 开发环境为例:

  • 同步数据:python manage.py syncdb --settings=bitcms.settings_dev

  • 启动服务:python manage.py runserver --settings=bitcms.settings_dev

2. Django 项目结构

bitcms └── bitcms ├── __init__.py ├── settings.py ├── settings.dev.py ├── urls.py ├── wsgi.py └── blog └── migrations ├── __init__.py └── templates └── blog ├── index.html ├── __init__.py ├── admin.py ├── models.py ├── tests.py ├── urls.py ├── views.py └── templates ├── 404.html

各目录文件的具体说明:

bitcms(项目容器,执行 django-admin.py startproject bitcms 自动生成)

Tips:

其中,前端开发人员需要注意的目录文件包括:

  • 日常开发中,主要关心 templates 目录和static 目录下的文件即可

  • 搭建环境时,需要执行 pip install -r requirements.txt 安装项目后端依赖

  • 运行环境时,需要执行 python manage.py runserver --settings=bitcms.settings_dev

  • 开发环境报 Bad Request(400) 错误时,在 bitcms/urls.py 设置 ALLOWED_HOSTS=['*'] 允许任意访问来源

  • 新建应用时,需要在 bitcms/settings.py 等 settings 文件加入应用名;同时,在 bitcms/urls.py 添加 URL 匹配

  • 添加 HTML 页面时,除了编写模板文件,还需要修改应用下的 urls.pyviews.py 文件,以及项目配置目录 bitcms 下的 urls.py。后面小节会具体介绍

3. 添加新页面

想要为blog 应用添加一个页面,并在 Django 服务中通过 URL 访问,需要完成以下步骤:

  1. 添加 blog 应用bitcms/settings.py

     INSTALLED_APPS = (
  2. 添加模板文件 blog/templates/blog/index.html

    <!DOCTYPE html>
  3. 添加响应函数到 blog/views.py

    # -*- coding: utf-8 -*-from django.shortcuts import render# Create your views here.def index(request):context = {}context['title'] = '首页'context['blogs'] = [{
  4. 添加应用内路由 blog/urls.py

    # -*- coding: utf-8 -*-from django.conf.urls import include, url# import blog.views as blog_viewsfrom . import views

    添加项目配置路由 bitcms/urls.py

    # -*- coding: utf-8 -*-"""bitcms URL Configuration

Tips:

  • 如果出现 SyntaxError: Non-ASCII character 错误,说明 python 文件中(包括注释)出现了汉字。

    这时,需要在代码最开始位置加入 # -*- coding: utf-8 -*-

  • 如果服务正常启动,页面仍然报 ERR_EMPTY_RESPONSE 错误,则可能是因为开启了翻墙工具,请尝试退出翻墙工具后重试

  • bitcms/settings.pyDEBUG = True 时,如果找不到静态资源,尝试在 bitcms/urls.py 配置:

    STATICFILES_DIRS = (

    另外,如果使用 Django 相对路径方式加载静态资源,如 <img src="{% static image %}loading.gif" />,还需要在模板文件头部添加 {% load static %}

  • bitcms/settings.pyDEBUG = False 时,如果找不到静态资源,尝试在 bitcms/urls.py 配置:

    from django.views.static import serve as static_serveif settings.DEBUG is False:
  • 如果向后端发送的是 Ajax 请求,则需要在 views.py 函数做相应处理:

    # -*- coding: utf-8 -*-from django.shortcuts import renderfrom django.http import JsonResponsedef hotNews(request):
  • 前端发送 Ajax 请求事,为了防止 CSRF 攻击,最好做以下设置:

    $.ajaxSetup({

4. DTL 模板标签

DTL(Django template language) 是 Django 默认的模板语言,DTL 常用模板标签示例:

{{ sum|default:'0.00' }}
{% load static %}
{% url 'articel' 12 %}
{% if value in [10, 100, 1000] %}
{% for item in list reversed %} <li>
{% for key, value in json.items %}
{{ request.user }}
{% if request.user.is_authenticated %}
{{ request.path }}?{{ request.GET.urlencode }}
{% csrf_token %}
{# 模板注释 #}
{{ list|join:", " }}
{% include "nav.html" %}
{% block css %}{% endblock %}
{% extends "base.html" %}

5. 隔离项目运行环境

开发中经常会在一台机器上安装多个的项目,各项目使用的 python 版本或依赖(如 Django)版本不同时,后安装的就会覆盖之前安装,造成之前项目无法运行。

可以通过 virualenv、Anaconda 等工具,在同一机器搭建多个虚拟 python 运行环境,将各项目隔离来避免以上问题。<br>

下面以 Anaconda 为例,列出搭建一个 python 的虚拟运行环境用到的命令:

  • 查看 python 环境列表:

    conda info --envs

  • 创建一个 python3 虚拟环境:

    conda create -n bitenv python=3

  • 激活(进入) py3 虚拟环境:

    source activate bitenv

  • 查看 python 版本:

    python --version

  • 查看 bitenv 已安装的 packages:

    conda list -n bitenv

  • 在 bitenv 安装 packages:

    conda install -n bitenv Django=1.8.2

  • 注销(离开)当前环境,恢复之前环境状态:

    source deactivate bitenv

  • 移除 bitenv 虚拟环境:

    conda remove -n bitenv --all

6. 结语

大家应该先给自己定位,再来学习前端。目前前端也有好几种,偏设计的(主攻html、css和设计相关的,通俗点说就是可以自己设计页面自己实现的),偏业务的(主攻js、angularjs、nodejs,顾名思义就是写业务以实现功能为主)。当然也不乏有大神集两者为一身。不管哪一种,都必须得有一定的基本功(html、css、js),所以题主从这三个基本技能开始学习吧,入门不需要太深入的书,w3cshool足矣,具体怎么它们之间的用法和关联相信你能在亲自动手做过一些实例后会有自己体悟的。有一定基础后题主可自己根据的需要或者公司需要选择往哪个方向发展,再在这个方向深入学习发展。

本人主要从事前端方向开发,刚接触 Django 不久,以上理解难免有误。欢迎留言指出~

相关推荐

方差分析简介(方差分析通俗理解)

介绍方差分析(ANOVA,AnalysisofVariance)是一种广泛使用的统计方法,用于比较两个或多个组之间的均值。单因素方差分析是方差分析的一种变体,旨在检测三个或更多分类组的均值是否存在...

正如404页面所预示,猴子正成为断网元凶--吧嗒吧嗒真好吃

吧嗒吧嗒,绘图:MakiNaro你可以通过加热、冰冻、水淹、模塑、甚至压溃压力来使网络光缆硬化。但用猴子显然是不行的。光缆那新挤压成型的塑料外皮太尼玛诱人了,无法阻挡一场试吃盛宴的举行。印度政府正...

Python数据可视化:箱线图多种库画法

概念箱线图通过数据的四分位数来展示数据的分布情况。例如:数据的中心位置,数据间的离散程度,是否有异常值等。把数据从小到大进行排列并等分成四份,第一分位数(Q1),第二分位数(Q2)和第三分位数(Q3)...

多组独立(完全随机设计)样本秩和检验的SPSS操作教程及结果解读

作者/风仕在上一期,我们已经讲完了两组独立样本秩和检验的SPSS操作教程及结果解读,这期开始讲多组独立样本秩和检验,我们主要从多组独立样本秩和检验介绍、两组独立样本秩和检验使用条件及案例的SPSS操作...

方差分析 in R语言 and Excel(方差分析r语言例题)

今天来写一篇实际中比较实用的分析方法,方差分析。通过方差分析,我们可以确定组别之间的差异是否超出了由于随机因素引起的差异范围。方差分析分为单因素方差分析和多因素方差分析,这一篇先介绍一下单因素方差分析...

可视化:前端数据可视化插件大盘点 图表/图谱/地图/关系图

前端数据可视化插件大盘点图表/图谱/地图/关系图全有在大数据时代,很多时候我们需要在网页中显示数据统计报表,从而能很直观地了解数据的走向,开发人员很多时候需要使用图表来表现一些数据。随着Web技术的...

matplotlib 必知的 15 个图(matplotlib各种图)

施工专题,我已完成20篇,施工系列几乎覆盖Python完整技术栈,目标只总结实践中最实用的东西,直击问题本质,快速帮助读者们入门和进阶:1我的施工计划2数字专题3字符串专题4列表专题5流程控制专题6编...

R ggplot2常用图表绘制指南(ggplot2绘制折线图)

ggplot2是R语言中强大的数据可视化包,基于“图形语法”(GrammarofGraphics),通过分层方式构建图表。以下是常用图表命令的详细指南,涵盖基本语法、常见图表类型及示例,适合...

Python数据可视化:从Pandas基础到Seaborn高级应用

数据可视化是数据分析中不可或缺的一环,它能帮助我们直观理解数据模式和趋势。本文将全面介绍Python中最常用的三种可视化方法。Pandas内置绘图功能Pandas基于Matplotlib提供了简洁的绘...

Python 数据可视化常用命令备忘录

本文提供了一个全面的Python数据可视化备忘单,适用于探索性数据分析(EDA)。该备忘单涵盖了单变量分析、双变量分析、多变量分析、时间序列分析、文本数据分析、可视化定制以及保存与显示等内容。所...

统计图的种类(统计图的种类及特点图片)

统计图是利用几何图形或具体事物的形象和地图等形式来表现社会经济现象数量特征和数量关系的图形。以下是几种常见的统计图类型及其适用场景:1.条形图(BarChart)条形图是用矩形条的高度或长度来表示...

实测,大模型谁更懂数据可视化?(数据可视化和可视化分析的主要模型)

大家好,我是Ai学习的老章看论文时,经常看到漂亮的图表,很多不知道是用什么工具绘制的,或者很想复刻类似图表。实测,大模型LaTeX公式识别,出乎预料前文,我用Kimi、Qwen-3-235B...

通过AI提示词让Deepseek快速生成各种类型的图表制作

在数据分析和可视化领域,图表是传达信息的重要工具。然而,传统图表制作往往需要专业的软件和一定的技术知识。本文将介绍如何通过AI提示词,利用Deepseek快速生成各种类型的图表,包括柱状图、折线图、饼...

数据可视化:解析箱线图(box plot)

箱线图/盒须图(boxplot)是数据分布的图形表示,由五个摘要组成:最小值、第一四分位数(25th百分位数)、中位数、第三四分位数(75th百分位数)和最大值。箱子代表四分位距(IQR)。IQR是...

[seaborn] seaborn学习笔记1-箱形图Boxplot

1箱形图Boxplot(代码下载)Boxplot可能是最常见的图形类型之一。它能够很好表示数据中的分布规律。箱型图方框的末尾显示了上下四分位数。极线显示最高和最低值,不包括异常值。seaborn中...