闲暇时间找个项目练练手。
复现教程:2022 B站最详细django3教程(django从入门到实践)_哔哩哔哩_bilibili
项目技术栈:python+(html+css+js)+Mysql
开发工具:Pycharm专业版
后端语言:python3
后端框架:Django
前端:HTML+CSS+JS
数据库:MySQL
项目托管平台:Gitee
Gitee网址:数据可视化django: python数据可视化网站
目录
1、创建项目,删除templates目录并修改setting.py。
1、创建项目,删除templates目录并修改setting.py。
这一步删除了网页模板目录和路径,外部的前端页面就加载不出来,不是很理解,但是跟着做。
2、默认文件说明
3、创建app
APP:负责多个模块的独自管理。
点击manage.py文件,在终端输入:
python manage.py startapp app
在工程目录中会发现生成了app(名字可随意更改)目录(数量可以是多个)。
app文件说明
4、注册App
如图:
5、编写URL和Views函数的对应关系:
app目录->views.py文件
from django.shortcuts import render,HttpResponse
# Create your views here.
def index(request):
return HttpResponse("Hello Django!")
djangoProject2目录->url文件
from django.urls import path
from app import views
urlpatterns = [
path('index/', views.index),
]
6、运行,打开网址:
两种启动方式:
终端:python manage.py runserver
pycharm:点击播放按钮(绿色三角形)
当当当当~
保证views函数和urls对应关系正确,想写多少页面都可以
7、创建templates模板
如果在views中返回的不再是一个页面上简单的字符串,而是html文本内容,我们需要注意:
两者的返回值是不同的:
httpresepose()模块返回的是普通的页面响应,如:字符串。
render()返回的是html文本内容。
那么,问题来了,我们的html文件放在哪呢?
我们在app目录下,新建目录templates目录,在templates目录下新建文件user_list.html文件
并在views和urls文件中写好对应的函数和代码,打开网址即可访问html文件内容。
8、templates优先级说明
当在项目的根目录的setting.py文件中设置了默认访问模板的位置:
'DIRS': [os.path.join(BASE_DIR, 'templates')]
则,在views中的render()函数会优先访问项目根目录下的templates目录中的文件,如果没有这个设定,则会按照app的注册顺序,优先访问先注册的app中的templates中的文件。
9、创建static静态文件
在网站开发中,我们通常将css、js、img、plugins当做静态文件来处理。
在app目录下面创建以下目录:
将准备好的静态文件拷贝到对应文件中去:
js:jQuery CDN
复制代码到js文件中:
plugins:起步 · Bootstrap v3 中文文档 | Bootstrap 中文网
下载插件压缩包,解压复制到plugins文件中:
img中可以放入自己喜欢的图片:
user_list.html代码:
{% load static %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link rel="stylesheet" href="{% static 'plugins/bootstrap-3.4.1/css/bootstrap.css' %}">
</head>
<body>
<h1>User_List</h1>
<img src="/static/img/ck.png" alt="">
<script src="{% static 'js/jQuery.js' %}"></script>
<script src="{% static 'plugins/bootstrap-3.4.1/js/bootstrap.js' %}"></script>
</body>
</html>
在Django框架中,html文件若要引用静态文件需要在最上面提前加载:
在引用的时候也要说明引用的静态文件,方便日后重构。
只需修改setting.py中的静态路径,就可以统一更改文件名。
注意:上图圈圈的代码是不规范的,因为没有声明引用的静态文件。
使用bootstrap样式:
{% load static %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link rel="stylesheet" href="{% static 'plugins/bootstrap-3.4.1/css/bootstrap.css' %}">
</head>
<body>
<h1>User_List</h1>
<input type="text" class="btn btn-primary" value="Create"/>
<img src="{% static '/img/ck.png' %}" alt="">
<script src="{% static 'js/jQuery.js' %}"></script>
<script src="{% static 'plugins/bootstrap-3.4.1/js/bootstrap.js' %}"></script>
</body>
</html>
样例: