Python-Django初体验—创建Django项目并实现页面跳转功能_django跳转到指定页面-程序员宅基地

技术标签: web app  python  django  pycharm  


前言

关于Python-Django创建新项目,并实现页面跳转功能。一个较简单的实战。

python 3.8
django 3.2


一、创建流程

1.准备工作

1.打开PyCharm,新建Django项目

在这里插入图片描述
这里建议选择虚拟环境,打包方便,环境干净

生成目录:
在这里插入图片描述
Django目录介绍:

1.urls.py:网址入口,关联到对应的views.py中的一个函数(或generic类),访问网址就对应一个函数。
2.views.py:处理用户发出的请求,与urls.py对应, 通过渲染templates中的网页可以将显示内容,如登陆后的用户名,用户请求的数据等输出到网页。
3.models.py:与数据库操作相关,存入或读取数据时用到,用不到数据库时可以不使用。
4.templates文件夹:views.py中的函数渲染templates中的html模板,得到动态内容的网页,可以用缓存来提高速度。
5.admin.py:后台,可以用很少的代码就拥有一个强大的后台。
6.settings.py:Django 的配置文件,如 DEBUG 的开关,静态文件的位置等。

2.创建应用

> python manage.py startapp pyapp

在这里插入图片描述

3.注册应用

在setting.py中的INSTALLED_APPS = [ ]中加入刚创建的app-‘pyapp’

在这里插入图片描述

4.连接数据库

1.开启数据库,创建数据库‘mytest’

2.安装mysql驱动

> pip install mysqlclient

3.在setting.py中的DATABASES = { } 中配置如下

DATABASES = {
    
    'default': {
    
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'mytest',  #连接库名
        'USER': 'root',   #数据库名
        'PASSWORD': 'root',  #数据库密码
        'HOST': 'localhost',
        'PORT': '3306',
    }
}

在这里插入图片描述

5.生成迁移文件并执行迁移

> python manage.py makemigrations
> python manage.py migrate

6.启动项目

> python manage.py runserver

2.建立第一个Django项目

1.主页-index.html与跳转页-hello.html

  1. index.html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>index</title>
</head>
<body>
<h1>hello index</h1>
<a href="/pyapp/hello_view">hello1</a>
</body>
</html>

在这里插入图片描述

  1. hello.html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>hello</title>
</head>
<body>
<h1>hello</h1>
</body>
</html>

在这里插入图片描述

2.主路由-./urls.py

from django.urls import path, include
from pyapp import views

urlpatterns = [
    # path('admin/', admin.site.urls),
    path('', views.index_view, name='index_view'),  # index

    path('pyapp/', include('pyapp.urls')),  # hello

]

在这里插入图片描述

3.从路由-pyapp/urls.py

from django.urls import path
from . import views

urlpatterns = [
    path('hello_view', views.hello_view, name='hello_view'),
]

在这里插入图片描述

4.视图-pyapp/views.py

from django.shortcuts import render

def index_view(request):
    return render(request, 'index.html')

def hello_view(request):
    return render(request, 'hello.html')

在这里插入图片描述

3.Django运行流程简述

1.当从a.html请求到b.html时,即为从a.html跳转到某一视图views.py;该视图中写有去往b.html的方法,一般用render函数;
2.而从a.html去往视图views.py时,需要配置路由urls.py
3.每次找路由的请求都先找到主路由urls.py,可以在主路由中通过include方法增加从路由urls.py,从路由指每个小应用中的内置路由。

注意:要写清楚主、从路由地址,新手容易出现404请求错误,此错误较容易解决,找清楚路由流向就可以。

二、非PyCharm下的Django项目创建

1.windows命令行模式

1.安装Django

pip install Django

2.创建项目

django-admin startproject mytest

3.创建应用

python manage.py startapp myapp

4.生成迁移文件

python manage.py makemigrations

4.生成迁移文件

python manage.py migrate

2.Linux命令行模式

1.安装Django

apt install python3-django

2.创建项目

django-admin startproject mytest

3.创建应用

python3 manage.py startapp myapp

4.生成迁移文件

python3 manage.py makemigrations

4.生成迁移文件

python3 manage.py migrate

三、基础报错记录

1.PyCharm新建项目后直接启动服务会报错

(venv) E:\test\test01>python manage.py runserver 9999
Traceback (most recent call last):
  File "manage.py", line 22, in <module>
    main()
  File "manage.py", line 18, in main
    execute_from_command_line(sys.argv)
  File "E:\test\test01\venv\lib\site-packages\django\core\management\__init__.py", line 446, in execute_from_command_line
    utility.execute()
  File "E:\test\test01\venv\lib\site-packages\django\core\management\__init__.py", line 386, in execute
    settings.INSTALLED_APPS
  File "E:\test\test01\venv\lib\site-packages\django\conf\__init__.py", line 87, in __getattr__
    self._setup(name)
  File "E:\test\test01\venv\lib\site-packages\django\conf\__init__.py", line 74, in _setup
    self._wrapped = Settings(settings_module)
  File "E:\test\test01\venv\lib\site-packages\django\conf\__init__.py", line 183, in __init__
    mod = importlib.import_module(self.SETTINGS_MODULE)
  File "D:\Program Files\Python\lib\importlib\__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
  File "<frozen importlib._bootstrap>", line 991, in _find_and_load
  File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 848, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "E:\test\test01\test01\settings.py", line 57, in <module>
    'DIRS': [os.path.join(BASE_DIR, 'templates')]
NameError: name 'os' is not defined

解决:在setting.py文件中加上 import os

在这里插入图片描述


总结

首先感谢各位师傅优秀的教学视频:

1.好评如潮Python Django全套教程:https://www.bilibili.com/video/BV1pq4y1W7a1
2.2021最新版Django全套视频:https://www.bilibili.com/video/BV1vK4y1o7jH
3.2021年最新Pycharm开发环境搭建:https://www.bilibili.com/video/BV1aN411o7Ei

我在今年年初时因毕设缘故开始学习Python-Django。个人基础有在大三时的“网络编程-python”的课程与“移动开发基础-Java Web”,但没有过多接触过Python Web,也不太理解“框架”的概念。经过一段时间的学习,让我对Python-Django有了更深刻的体会,因为有“视图”与“路由”的存在,刚开始写页面跳转时经常报错,觉得非常凌乱。但是,多写多测试果然还是最好的解决方案。
目前项目工程已经写到如下代码量。不要害怕遇到Bug,要享受解决Bug的过程,一切努力过后的收获都是巨大的。加油,给自己打气!
在这里插入图片描述
2022年4月4日于家中

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_45859826/article/details/123956196

智能推荐

量化投资 -- 技术篇(6)投资组合策略性能评价(上)_量化指标组合-程序员宅基地

文章浏览阅读1.6k次。量化投资 – 技术篇(7)投资组合策略性能评价(上)前言 在我们实施任何一种技术方法用以解决某个问题时,我们首先需要建立一个评价方法或者体系。做量化投资和建立资产组合策略也是同样的,所以我们需要有量化的指标来评价投资是否有效。 本章我们总结和介绍常见的投资组合策略性能评价指标。从投资来说,投资者一般..._量化指标组合

C/C++中open函数的阻塞和非阻塞编程_open 阻塞-程序员宅基地

文章浏览阅读310次。阻塞模式会在open函数调用处等待文件打开完成,而非阻塞模式会立即返回,并在文件无法立即打开时设置errno为EAGAIN或EWOULDBLOCK。当read或write函数在非阻塞模式下读取或写入文件时,如果没有可用数据或无法立即写入,这些函数也会返回-1,并设置errno为EAGAIN或EWOULDBLOCK。open函数可以以阻塞或非阻塞的方式打开文件,这取决于对文件描述符的标志位进行的设置。当以阻塞模式打开文件时,程序会在open函数调用处等待,直到文件打开操作完成。_open 阻塞

编程人员的不二之选 LEGION Y9000X正式发布_y9000x写代码够用吗-程序员宅基地

文章浏览阅读4.6k次。10月11日,联想集团在全球总部未来中心举行了主题为“解密X空间”的新品发布会,正式发布了LEGIONY9000X笔记本电脑,并公布了“联想个人云存储核心测试用户招募”计划。高性能标压轻薄本 LEGION Y9000X赋能内容创造者“你正在用的笔记本是游戏本还是轻薄本?”通过这样的一个问题,联想中国区消费业务笔记本产品规划总监林林,拉开了“解密X空间”的序幕,带来重磅新品——高性能标..._y9000x写代码够用吗

强化学习(reinforcement learning)教程_强化学习教程-程序员宅基地

文章浏览阅读3.4w次,点赞2次,收藏29次。前一阵研究强化学习,发现中文的资料非常少,实例就更少。于是翻译一篇q学习算法的教程,供需要的人学习。原文链接:http://mnemstudio.org/path-finding-q-learning-tutorial.htm正文:Q学习算法是一种用来解决马尔可夫决策过程中最优化问题的方法。Q学习算法最大的特点是它具有选择瞬时奖励和延迟奖励的能力。在每一步中,agent通过观察状态_强化学习教程

SpringBoot+Vue校园二手书交易平台(源码+论文)_基于vue+springboot的校园二手商品交易网站论文-程序员宅基地

文章浏览阅读81次。后端:Java+SpringBoot前端:Vue数据库:MySQL开发软件:Eclipse、MyEclipse、IDEA都可以运行。_基于vue+springboot的校园二手商品交易网站论文

Chrome 开发者工具各种骚技巧-程序员宅基地

文章浏览阅读231次。对于每个前端从业者来说,除了F5键之外,用的最多的另外一个键就是F12了。今天,大神(@小鱼二)推荐我一个网站,才知道chrome还有各种骚姿势。网站是:umaar.com/dev-tip...

随便推点

alpha-beta filter αβ滤波器_alpha滤波-程序员宅基地

文章浏览阅读2.4w次,点赞29次,收藏190次。很多年前,就开始使用alpha-beta滤波了,但是一直都没有对该滤波算法进行总结,网上相关的资料也不是太丰富。目录简介滤波方程滤波参数的选择滤波器的其它变种Alphafilter :α滤波器Alpha beta gamma filter :αβγ滤波简介alpha-beta滤波(αβ滤波)是一种可用于状态估计、数据平滑的滤波器,如果对kalman滤波有了..._alpha滤波

Linux静态链接库与动态链接库_linux里动态链接库和静态链接库-程序员宅基地

文章浏览阅读558次。一、静态库与动态库基本概念:Windows中静态连接库为.lib文件,动态链接库为.dll文件,这两种文件在平时生活中使用Windows我们就见过很多回,而今天我们来说说Linux的动态链接库(又称为共享链接库)(.so文件)与静态链接库(.a文件)。有关于环境变量与编译的基本内容,可参照: Linux环境变量与系统编程学习笔记 Linux环境C语言编译与头文件等知识点小结 1、静态库与共享_linux里动态链接库和静态链接库

可能是最好用的Android引导层库-程序员宅基地

文章浏览阅读586次,点赞19次,收藏25次。着重说明一下setLayoutRes方法,通常其他的类似的库都是通过代码参数来控制说明内容展示在高亮view相对的位置,如下方。经常需要多次运行才能找到满意的位置的参数。大多说明内容只能出现在高亮的上下左右,需要库的支持,自定义的程度不是很高。我所采用的方式是将说明内容通过xml的方式,自定义摆放位置。使得说明内容高度自定义,不管你是简单的图片,还是对话框类型的都可以。.setEverywhereCancelable(false)//是否点击任意位置消失引导页,默认true。

小帅的七个男友 第一章 未恋先失-程序员宅基地

文章浏览阅读164次。第一章 未恋先失&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;初中时代的我,还是一个单纯的女孩,对于爱情,以为是眼泪制造出来的。我的圈子并不大,只有几个要好的女生,彭老二,周薇,秋毛。彭老二是个大嘴,校园里发生了什么事情她总是最先知道,通过她的大嘴,什么八卦新闻都逃..._操小帅

MATLAB db4小波分解与重构,语音降噪-程序员宅基地

文章浏览阅读4.4k次,点赞2次,收藏23次。小波变换3级分解Mallat图:将带噪语音作为输入信号进行逐级DWT小波分解,并将分解出的低频成分cA3cA_3cA3​与强制置0后的高频成分cD3cD_3cD3​,cD2cD_2cD2​,cD1cD_1cD1​进行小波重构。Demo:clc,clear[x,Fs]= audioread('MUsic_Test.wav');snr = 20; %设定信噪比,单位dbnoise = randn(size(x)); % 用randn函数产生高斯白噪声Nx = length(x_db4小波

安装和配置SNMP(windows10和Linux)--附SNMP客户端工具_snmp工具-程序员宅基地

文章浏览阅读8.3k次,点赞5次,收藏34次。首先需要安装 snmp ,使用下面的命令进行安装安装完毕之后,使用下面的命令查看是否安装成功当命令行显示如图即为安装成功。_snmp工具

推荐文章

热门文章

相关标签