使用Django框架创建项目


Posted in Python onJune 10, 2022

本章我们将介绍Django 管理工具及如何使用 Django 来创建项目,第一个项目我们以 HelloWorld 来命令项目。

一、Django 管理工具

安装 Django 之后,您现在应该已经有了可用的管理工具 django-admin.py。我们可以使用 django-admin.py 来创建一个项目:

我们可以来看下django-admin 的命令介绍:

$ django-admin.py

使用Django框架创建项目

二、创建第一个项目

使用 django-admin.py 来创建 HelloWorld 项目:

django-admin.py startproject HelloWorld

使用Django框架创建项目

创建完成后我们可以查看下项目的目录结构:

$ cd HelloWorld/
$ tree
.
|-- HelloWorld
|   |-- __init__.py
|   |-- asgi.py
|   |-- settings.py
|   |-- urls.py
|   `-- wsgi.py
`-- manage.py

使用Django框架创建项目

目录说明:

  • HelloWorld: 项目的容器。
  • manage.py: 一个实用的命令行工具,Django管理主文件。
  • HelloWorld/__init__.py: 一个空文件,告诉 Python 该目录是一个 Python 包。
  • HelloWorld/asgi.py: 一个 ASGI 兼容的 Web 服务器的入口,以便运行你的项目。
  • HelloWorld/settings.py: 项目的设置/配置文件。
  • HelloWorld/urls.py: 项目的URL路由文件; 一份由 Django 驱动的网站"目录"。
  • HelloWorld/wsgi.py: 一个 WSGI 兼容的 Web 服务器的入口,以便运行你的项目。

接下来我们进入 HelloWorld 目录输入以下命令,启动服务器:

manage.py runserver 0.0.0.0:8000

0.0.0.0 让其它电脑可连接到开发服务器,8000 为端口号。如果不说明,那么端口号默认为 8000。

使用Django框架创建项目

在浏览器输入你服务器的 ip(这里我们输入本机 IP 地址: 127.0.0.1:8000) 及端口号,如果正常启动,输出结果如下:

使用Django框架创建项目

三、视图和 URL 配置

在先前创建的 HelloWorld 目录下的 HelloWorld 目录新建一个 views.py 文件,并输入代码:

from django.http import HttpResponse #需要导入HttpResponse模块

def hello(request):  # 定义Hello函数。request参数必须有,名字类似self的默认规则,可以修改,它封装了用户请求的所有内容
    return HttpResponse("Hello world ! ") #不能直接字符串,必须是由这个类封装,此为Django规则

接着,绑定 URL 与视图函数。打开 urls.py 文件,删除原来代码,将以下代码复制粘贴到 urls.py 文件中:

from django.contrib import admin
from django.urls import path
from django.conf.urls import url

from mytest import views  # 首先需要导入对应APP的views

urlpatterns = [
    path('admin/', admin.site.urls),  # admin后台路由
    url(r'^$', views.hello),  # 你定义的路由,第一个参数为引号中的正则表达式,第二个参数业务逻辑函数(当前为views中的hello函数)
]

整个目录结构如下:

$ tree
.
|-- HelloWorld
|   |-- __init__.py
|   |-- __init__.pyc
|   |-- settings.py
|   |-- settings.pyc
|   |-- urls.py              # url 配置
|   |-- urls.pyc
|   |-- views.py              # 添加的视图文件
|   |-- views.pyc             # 编译后的视图文件
|   |-- wsgi.py
|   `-- wsgi.pyc
`-- manage.py

完成后,启动 Django 开发服务器,并在浏览器访问打开浏览器并访问:

使用Django框架创建项目

我们也可以修改以下规则:

from django.urls import path
 
from . import views
 
urlpatterns = [
    path('hello/', views.hello),
]

通过浏览器打开 http://127.0.0.1:8000/hello,输出结果如下:

使用Django框架创建项目

注意:项目中如果代码有改动,服务器会自动监测代码的改动并自动重新载入,所以如果你已经启动了服务器则不需手动重启。

四、path() 函数

Django path() 可以接收四个参数,分别是两个必选参数:route、view 和两个可选参数:kwargs、name。

语法格式:

path(route, view, kwargs=None, name=None)
  • route: 字符串,表示 URL 规则,与之匹配的 URL 会执行对应的第二个参数 view。
  • view: 用于执行与正则表达式匹配的 URL 请求。
  • kwargs: 视图使用的字典类型的参数。
  • name: 用来反向获取 URL。

如果是 Django >= 2.0 的版本,path() 函数无法匹配正则表达式,需要使用 re_path() 即可匹配正则表达式:

from django.urls import re_path 
from . import view 
urlpatterns = [
    re_path(r'^hello$',view.hello),
]

五、使用PyCharm创建Django项目

PyCharm是一种Python IDE,带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试、语法高亮、Project管理、代码跳转、智能提示、自动完成、单元测试、版本控制。此外,该IDE提供了一些高级功能,以用于支持Django框架下的专业Web开发。刚玩Python或Django的朋友,如果没有自己熟悉的IDE,建议直接使用这个。PyCharm可跨平台,支持市面流行的操作系统。

下面,我教大家使用pycharm创建自己的第一个django项目。

1、打开PyCharm,新建项目

使用Django框架创建项目

界面讲解:

使用Django框架创建项目

点击创建之后,PyCharm自动帮我们创建一个虚拟环境和安装最新版的Django。

使用Django框架创建项目

安装成功之后,我们刚才指定的目录下就多出一个untiltled4文件夹。打开untiltled4文件夹。

使用Django框架创建项目

这就是Django的目录结构,其中

templates文件夹是存放模板文件的,

untiltled4文件夹放的是Django的一些配置文件。

manage.py文件则是对django-admin.py的简单包装的一个文件,通过它能运行一些简单的命令。

venv文件夹就是virtualenv虚拟环境目录,venv文件夹不是django源码里的东西,只是我们创建虚拟环境时指定到这个目录下了而已。

我们在创建Django项目的时候,也可以不用在More Settings里创建APP和指定templates文件夹。

使用Django框架创建项目

我们可以手动通方法创建。

2、通过命令行,添加新的APP。

点击PyCharm下方的Terminal,看下图:

使用Django框架创建项目

注意命令行前面的 (venv)出现这个,表示我们是在virtualenv虚拟环境下操作,如果没有,或者虚拟环境名和我们创建的名称不一致,说明PyCharm配置错误,我们输入任何命令对刚才我们创建的项目来说是无效的。

我们通过命令行,进入我们的项目目录,然后输入

python manage.py startapp mytest

创建一个叫 mytest的APP。

或者从主菜单中,选择“工具”运行manage.py task,在Django控制台对话框中,键入startapp startapp mytest.

回车之后我们就能看到,我们的项目目录里多出一个mytest文件夹。

使用Django框架创建项目

关于更多的一些Django常用的命令,大家可以看看这篇文章:Django常用命令

3、迁移数据库。

在Terminal下输入下面的命令,生成和同步数据库。

python manage.py makemigrations
python manage.py migrate

使用Django框架创建项目

4、启动Django项目

点击“运行”按钮

使用Django框架创建项目

项目启动成功,然后我们通过浏览器访问http://127.0.0.1:8080/

使用Django框架创建项目

这样,我们的第一个Django项目就创建完成了。

5、Django模板

修改views文件:

from django.shortcuts import render


def hello(request):
    # return HttpResponse("Hello world ! ")
    context = {'hello': 'Hello World!'}
    return render(request, 'hello.html', context)  # 将绑定的数据传入前台

为了让django知道html文件在哪里,需要修改settings文件的相应内容。默认情况下,正好适用,无需修改。

使用Django框架创建项目

被继承的模板base.html:

{#base.html#}
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>模板测试</title>
</head>
<body>
    <h1>{{ hello }}</h1>
    <p>Django模板测试</p>
    {% block mainbody %}
       <p>original</p>
    {% endblock %}
</body>
</html>

hello.html 中继承 base.html,并替换特定 block,hello.html 修改后的代码如下:

{#hello.html#}
{% extends "base.html" %}
 
{% block mainbody %}
   <p>继承了 base.html 文件</p>
{% endblock %}

使用Django框架创建项目

刷新网页,输出结果如下:

使用Django框架创建项目

6、引入静态文件

需要将一些静态资源引入项目,新建一个static目录,可以将js、css、图片等文件放入这个目录中:

 

使用Django框架创建项目

 

需要让Django找到这个目录,需要在setting文件中进行配置:

STATICFILES_DIRS=

在html文件中引入静态资源:

{% load static %}
{#base.html#}
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <link rel="stylesheet" href="{% static 'css/mypage.css' %}" rel="external nofollow" >
    <script src="{% static 'js/jquery-1.11.1.js' %}"></script>
<title>模板测试</title>
</head>
    <body>
        <h1>{{ hello }}</h1>
        <p>Django模板测试</p>
        {% block mainbody %}
           <p>original</p>
        {% endblock %}
    </body>
</html>

第一行引入静态文件路径{% load staticfiles %},在<head>...</head>里加入CSS网链和js文件

到此这篇关于Django框架创建项目的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。


Tags in this post...

Python 相关文章推荐
python备份文件的脚本
Aug 11 Python
python登录豆瓣并发帖的方法
Jul 08 Python
利用python求相邻数的方法示例
Aug 18 Python
PyQt5每天必学之拖放事件
Aug 27 Python
详解PyCharm配置Anaconda的艰难心路历程
Aug 13 Python
Python常见排序操作示例【字典、列表、指定元素等】
Aug 15 Python
python json.loads兼容单引号数据的方法
Dec 19 Python
python 计算数据偏差和峰度的方法
Jun 29 Python
python elasticsearch环境搭建详解
Sep 02 Python
tensorflow使用指定gpu的方法
Feb 04 Python
浅谈Python实现opencv之图片色素的数值运算和逻辑运算
Jun 23 Python
Python爬虫入门案例之爬取二手房源数据
Oct 16 Python
Python实现信息管理系统
Jun 05 #Python
python实现学员管理系统(面向对象版)
Jun 05 #Python
python实现学生信息管理系统(面向对象)
Jun 05 #Python
Python使用pyecharts控件绘制图表
Jun 05 #Python
Python使用openpyxl模块处理Excel文件
Jun 05 #Python
Python中requests库的用法详解
Jun 05 #Python
Python加密与解密模块hashlib与hmac
Jun 05 #Python
You might like
php microtime获取浮点的时间戳
2010/02/21 PHP
解析php开发中的中文编码问题
2013/08/08 PHP
php内核解析:PHP中的哈希表
2014/01/30 PHP
windows7配置Nginx+php+mysql的详细教程
2016/09/04 PHP
用prototype实现的简单小巧的多级联动菜单
2007/03/24 Javascript
浅谈Javascript面向对象编程
2011/11/15 Javascript
js实现收缩菜单效果实例代码
2013/10/30 Javascript
jquery实现图片灯箱明暗的遮罩效果
2013/11/15 Javascript
最精简的JavaScript实现鼠标拖动效果的方法
2015/05/11 Javascript
轻松学习jQuery插件EasyUI EasyUI创建菜单与按钮
2015/11/30 Javascript
jQuery div拖拽用法实例
2016/01/14 Javascript
jQuery 常见小例汇总
2016/12/14 Javascript
Bootstrap Scrollspy源码学习
2017/03/02 Javascript
js canvas实现适用于移动端的百分比仪表盘dashboard
2017/07/18 Javascript
vue.js移动数组位置,同时更新视图的方法
2018/03/08 Javascript
Node+OCR实现图像文字识别功能
2018/11/26 Javascript
JS实现将对象转化为数组的方法分析
2019/01/21 Javascript
vue 使用axios 数据请求第三方插件的使用教程详解
2019/07/05 Javascript
Node.js 实现简单的无侵入式缓存框架的方法
2019/07/21 Javascript
使用layui定义一个模块并使用的例子
2019/09/14 Javascript
Vue Router的手写实现方法实现
2020/03/02 Javascript
解决vue+webpack项目接口跨域出现的问题
2020/08/10 Javascript
python tornado微信开发入门代码
2018/08/24 Python
Python日期时间模块datetime详解与Python 日期时间的比较,计算实例代码
2018/09/14 Python
pygame游戏之旅 python和pygame安装教程
2018/11/20 Python
Python中按键来获取指定的值
2019/03/02 Python
OpenCV灰度化之后图片为绿色的解决
2020/12/01 Python
python 爬取英雄联盟皮肤并下载的示例
2020/12/04 Python
纯CSS3制作漂亮带动画效果的主机价格表
2015/04/25 HTML / CSS
Talbots官网:美国成熟女装品牌
2019/11/15 全球购物
春节联欢晚会主持词
2014/03/24 职场文书
员工安全生产承诺书
2014/05/22 职场文书
比赛口号大全
2014/06/10 职场文书
大学毕业生个人自荐书
2014/07/02 职场文书
群众路线查摆问题及整改措施
2014/10/10 职场文书
MySQL中的引号和反引号的区别与用法详解
2021/10/24 MySQL