使用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新手编程过程中如何规避一些常见问题的建议
Apr 01 Python
python中如何使用朴素贝叶斯算法
Apr 06 Python
Python 实现选择排序的算法步骤
Apr 22 Python
python实现人人自动回复、抢沙发功能
Jun 08 Python
Numpy之文件存取的示例代码
Aug 03 Python
Python基础学习之基本数据结构详解【数字、字符串、列表、元组、集合、字典】
Jun 18 Python
使用python实现unix2dos和dos2unix命令的例子
Aug 13 Python
Python 实现大整数乘法算法的示例代码
Sep 17 Python
创建Shapefile文件并写入数据的例子
Nov 26 Python
pytorch 计算ConvTranspose1d输出特征大小方式
Jun 23 Python
关于Python3爬虫利器Appium的安装步骤
Jul 29 Python
通过代码实例了解Python sys模块
Sep 14 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
2006/12/14 PHP
PHP中数组的三种排序方法分享
2012/05/07 PHP
解析php如何将日志写进syslog
2013/06/28 PHP
php简单实现数组分页的方法
2016/04/30 PHP
php中照片旋转 (orientation) 问题的正确处理
2017/02/16 PHP
CI框架网页缓存简单用法分析
2018/12/26 PHP
基于PHP实现短信验证码发送次数限制
2020/07/11 PHP
jQuery对象和DOM对象使用说明
2010/06/25 Javascript
Script的加载方法小结
2011/01/12 Javascript
jquery remove方法应用详解
2012/11/22 Javascript
js获取客户端外网ip的简单实例
2013/11/21 Javascript
通过隐藏iframe实现文件下载的js方法介绍
2014/02/26 Javascript
深入理解javascript的执行顺序
2014/04/04 Javascript
基于NodeJS的前后端分离的思考与实践(六)Nginx + Node.js + Java 的软件栈部署实践
2014/09/26 NodeJs
js验证框架之RealyEasy验证详解
2016/06/08 Javascript
JS简单实现禁止访问某个页面的方法
2016/09/13 Javascript
React Native基础入门之初步使用Flexbox布局
2018/07/02 Javascript
详解vue 路由跳转四种方式 (带参数)
2019/04/28 Javascript
Element-ui DatePicker显示周数的方法示例
2019/07/19 Javascript
ES6基础之 Promise 对象用法实例详解
2019/08/22 Javascript
详解element-ui表格中勾选checkbox,高亮当前行
2019/09/02 Javascript
JS localStorage存储对象,sessionStorage存储数组对象操作示例
2020/02/15 Javascript
vue封装自定义指令之动态显示title操作(溢出显示,不溢出不显示)
2020/11/12 Javascript
Vue单页面应用中实现Markdown渲染
2021/02/14 Vue.js
Python装饰器知识点补充
2018/05/28 Python
Python开启线程,在函数中开线程的实例
2019/02/22 Python
Python字典的基本用法实例分析【创建、增加、获取、修改、删除】
2019/03/05 Python
Django 实现xadmin后台菜单改为中文
2019/11/15 Python
Python算法的时间复杂度和空间复杂度(实例解析)
2019/11/19 Python
加拿大约会网站:EliteSingles.ca
2018/01/12 全球购物
代理班主任的自我评价
2014/02/04 职场文书
倡议书格式
2014/04/14 职场文书
2015年世界卫生日活动总结
2015/02/09 职场文书
安装pytorch时报sslerror错误的解决方案
2021/05/17 Python
python内置进制转换函数的操作
2021/06/02 Python
详解Go语言中Get/Post请求测试
2022/06/01 Golang