Pycharm社区版搭建Django环境及Django简单项目、操控mysql数据库

Web应用开发(Django)

一、配置Django环境

1、先通过Pycharm社区版创建一个普通的项目

2、依次点击”file"-->"Settings"

3、点击"Project:项目名"-"Python Interpreter"-"+号"

4、在搜索框输入要安装的包,选择要下载的版本,然后点击"Install Package"

5、配置成功

二、创建项目

1、打开终端Terminal(在最下边),然后输入下面的命令创建Django项目

    django-admin startproject   pydjango

然后在当前项目下,就会出现一个名为pyDjango项目名的文件夹。

2、在Django项目文件夹处,打开终端

3、输入以下命令

python manage.py runserver

点击该网址即可打开

三、创建应用

一般一个项目包含多个app应用程序(当然,通用的app也可以在多个项目中使用) 下面我们为该项目,创建一个名为login的应用。

1、创建应用

通过pyCharm中的终端,进入到pyDjango目录下,创建新的应用:

python manage.py startapp login

创建应用结构以及应用文件夹中的文件功能:

2、注册应用

在pyDjango项目的settings.py文件中,找到INSTALLED_APPS设置,将你新创建的应用添加到这个列表中:

四、编写代码

1、后端数据输出到前端

1.1、普通模式

具体操作步骤:

1、在login应用的views.py文件中,编写hello函数。

2、在项目中的url.py文件中,通过path()函数来配置url路径绑定响应函数

3、运行服务器,访问地址,可能会报出以下问题

4、修改访问URL地址,在后面加上要访问的路径:/hello。成功输出view.py文件中hello函数return的内容。

1.2、模板模式

(1)创建模板。在该项目下,创建一个目录,命名为template。并在其内创建index.html。如图所示

index.html文件代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>首页</title>
</head>
<body>
    这是template目录下的index页面
</body>
</html>

(2)配置settings.py文件

在settings.py的TEMPLATES中添加你的模板路径:

(3)配置urls.py文件

在urls.py中添加url路径,指向views里的处理函数:

完成以上操作步骤之后,项目应该可以正常跑起来,在浏览器中输入:http://127.0.0.1:9999/index/。【注意:该ip和port需要根据自己配置的真实内容访问】

模板(Templates)解读:

  1. 模板是Django中用于生成HTML内容的文件,通常存放在应用的templates目录下。

  2. Django使用模板语言(Template Language)来动态生成内容,包括变量、标签和过滤器。

  3. 在视图函数中使用render()函数加载模板并传递数据进行渲染,最终返回给用户的是渲染后的HTML页面。

  4. 模板语言中的变量使用{{ variable_name }},标签使用{% tag_name %},过滤器使用{{ value|filter_name }}的方式进行操作。

  5. 继承是模板中常用的技术,通过{% extends 'base.html' %}和{% block content %}来实现模板的继承和覆盖。

2、模板中变量输出方式

视图函数中必须将变量封装到字典中才允许传递到模板上。也可以通过locals() 返回当前函数作用域内全部局部变量形成的字典。

2.1、在view.py文件中,修改index函数体,代码内容参考:

另一种使用locals(),代码参考

def index(request):
    name = 'lisi'
    age=12
    addr='china-beijing'
    phone='12312341234'
    # stu={'name':name,'age':age,'addr':addr,'phone':phone}
    # return render(request, "index.html",stu)
    return render(request,'index.html',locals())
​

2.2、修改template目录中index.html内容为:

运行结果:

3、前端数据传递到后端

3.1、修改template目录下的index.html文件内容。如图

代码为(采用form中的get方法传递):

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>首页</title>
</head>
<body>
    这是template目录下的index页面<br>
    <form action="" method="get">
        {% csrf_token %}
    请输入姓名:<input type="text" name="username"/>
       <input type="submit" name="submit" value="查询">
    </form>
    ---------------------------------<br>
    您输入的姓名为:{{ name }}<br>
​
</body>
</html>

3.2、修改view.py文件内容。如图

函数代码为:

def index(request):
    if request.method == "GET":
        name = request.GET.get('username')
    elif request.method == "POST":
        name = request.POST.get('username')
    return render(request, 'index.html', locals())

运行结果:

五、连接mysql数据库

1、安装mysqlclient

安装成功后,在项目环境的__init__.py文件中添加如下内容:

如果pymysql下面有红色波浪线,说明该模块未安装。在项目内安装即可。

2、配置数据库

修改settings.py文件中的DATABASES的值

3、绑定ORE关系映射

在sdp下的models.py中,创建类。以下方式的创建,需要满足的前提:在数据库中已经创建好了students表

ORM:对象关系映射

作用:目的就是为了能够让不懂SQL语句的人通过python面向对象的知识点也能够轻松自如的操作数据库

缺陷:封装程度太高,有时候sql语句的效率偏低,需要自己写SQL语句

类 ---------------->>> 表

对象 --------------->>> 表里面的数据

对象点属性 ---------->>> 字段对应的值

注意:

如果是在models.py创建类,而数据库中没有对应的表,则需要在terminal上面执行下面两条命令

登陆mysql查看结果。会自动生成对应的表

4、数据读取

在views.py文件中,定义函数来处理。

运行服务器,并访问对应URL,显示结果为:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/718418.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

CSS选择符和可继承属性

属性选择符&#xff1a; 示例&#xff1a;a[target"_blank"] { text-decoration: none; }&#xff08;选择所有target"_blank"的<a>元素&#xff09; /* 选择所有具有class属性的h1元素 */ h1[class] { color: silver; } /* 选择所有具有hre…

渗透测试和红蓝对抗是什么?二者之间有何区别?

在网络安全这个庞大的体系中&#xff0c;渗透测试、红蓝对抗是比较常见的专业名词&#xff0c;承担着非常重要的作用&#xff0c;那么什么是渗透测试、红蓝对抗?红蓝对抗和渗透测试有什么区别?小编通过这篇文章为大家介绍一下。 渗透测试 渗透测试&#xff0c;是通过模拟黑…

Java基础 - 练习(一)打印等腰三角形

Java基础练习 打印等腰三角形&#xff0c;先上代码&#xff1a; public static void main(String[] args) {// 打印等腰三角形System.out.println("打印等腰三角形&#xff1a;");isoscelesTriangle(); } public static void isoscelesTriangle() {// for循环控制行…

java:一个springfox swagger2的简单例子

# 示例程序 【pom.xml】 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><version>2.3.12.RELEASE</version> </dependency> <dependency><groupId>…

《Cloud Native Data Center Networking》(云原生数据中心网络设计)读书笔记 -- 02 Clos拓扑

本章回答以下问题&#xff1a; 什么是 Clos 拓扑&#xff0c;它与“接入 - 汇聚 - 核心”拓扑有何不同?Clos 拓扑的特征是什么?Clos 拓扑对数据中心网络的影响是什么? Clos拓扑 云原生数据中心基础设施的先行者们想要构建一种支持大规模水平扩展网络。 基本的Clos拓扑如图…

保姆级pycharm远程连接linux服务器

1、登录服务器&#xff0c;创建账号。 一般都是管理员账户登录&#xff0c;创建自己的账号。如果不需要&#xff0c;可跳过这步。 打开MobaXterm&#xff0c;点击左上角Session创建会话。 再点击左上角SSH&#xff0c;分别输入服务器ip和账号&#xff0c;最后点ok&#xff0c;进…

C++使用spdlog输出日志文件

参考博客&#xff1a; 日志记录库 spdlog 基础使用_spdlog 写日志-CSDN博客 GitHub - gabime/spdlog: Fast C logging library. 首先在github上下载spdlog源码&#xff0c;不想编译成库的话&#xff0c;可以直接使用源码&#xff0c;将include文件夹下的spdlog文件夹&#x…

Langchain-chatchat: Langchain基本概念

一、Langchain的chain是指的是什么&#xff1f; langchain字面意思是长长的链子&#xff0c;那么chains 链子具体指的是什么呢&#xff1f; 智普AI助手的回答如下&#xff1a; LangChain 中的 “chain” 是指链式操作或者序列化操作&#xff0c;它是一种将多个任务或操作按照…

Aeron:Aeron Agent

Aeron Agent 是一个 Java 代理&#xff0c;用于提供 Aeron、Aeron Archive 和 Aeron Cluster 中发生的运行时低级日志信息。这些日志语句包括从高级管理员事件到大容量数据帧事件。 在调试 Archive 和 Cluster 问题时&#xff0c;Aeron Agent 的日志数据尤其有用。 一、Availab…

Excel VLOOKUP 使用记录

Excel VLOOKUP 使用记录 VLOOKUP简单使用 VLOOKUP(lookup_value,table_array,col_index_num,[range-lookup]) 下面是excel对VLOOKUP 的解释 lookup_value&#xff08;查找值&#xff09;&#xff1a;要匹配查找的值 table_array&#xff08;数据表&#xff09;&#xff1…

基于(C++)VTK9.3.0+Microsoft Visual Studio2017的DICOM影像VR体绘制完整实现代码

开发基于&#xff08;C&#xff09;VTK9.3.0Microsoft Visual Studio2017的DICOM影像VR体绘制程序的前提是&#xff1a; 1、已编译完成VTK9.3.0&#xff0c;可在VTK官网下载VTK9.3.0源码&#xff0c;官网下载地址&#xff1a;Download | VTK 选择所需的VTK版本进行下载 具体编…

图片的大小如何改变?有效率改图片大小的方法

图片怎么将改变图片大小呢&#xff1f;现在经常在使用图片的时候需要先按照上传平台的要求来修改尺寸和大小&#xff0c;将图片调整到满足使用的大小之后然后上传使用。那么如何在线改变图片大小呢&#xff0c;有一个很简单的方法能够快速在线改图片大小&#xff0c;今天小编将…

c++ 编译过程杂记等

开篇一张图。 编译器 把我们的代码翻译成机器语言 ​ gcc编译程序的过程 gcc编译程序主要经过四个过程&#xff1a; 四个过程说明&#xff1a; ​ 预处理实际上是将头文件、宏进行展开。 编译阶段&#xff0c;gcc调用不同语言的编译器&#xff0c;例如c语言调用编译器ccl…

示例:WPF中绑定枚举到ComboBox的方式

一、目的&#xff1a;在开发过程中&#xff0c;经常会需要把枚举绑定到ComboxBox下拉列表中&#xff0c;其实方法有很多&#xff0c;这里面通过MarkupExtension扩展GetEnumSourceExtension去绑定到列表 二、实现 定义GetEnumSourceExtension类 public class GetEnumSourceExte…

FLAN-T5模型的文本摘要任务

Text Summarization with FLAN-T5 — ROCm Blogs (amd.com) 在这篇博客中&#xff0c;我们展示了如何使用HuggingFace在AMD GPU ROCm系统上对语言模型FLAN-T5进行微调&#xff0c;以执行文本摘要任务。 介绍 FLAN-T5是谷歌发布的一个开源大型语言模型&#xff0c;相较于之前的…

一文彻底理解机器学习 ROC-AUC 指标

在机器学习和数据科学的江湖中&#xff0c;评估模型的好坏是非常关键的一环。而 ROC&#xff08;Receiver Operating Characteristic&#xff09;曲线和 AUC&#xff08;Area Under Curve&#xff09;正是评估分类模型性能的重要工具。 这个知识点在面试中也很频繁的出现。尽管…

springboot+vue+mybatis酒店房间管理系统+PPT+论文+讲解+售后

随着现在网络的快速发展&#xff0c;网络的应用在各行各业当中它很快融入到了许多商家的眼球之中&#xff0c;他们利用网络来做这个电商的服务&#xff0c;随之就产生了“酒店房间管理系统”&#xff0c;这样就让人们酒店房间管理系统更加方便简单。 对于本酒店房间管理系统的…

深浅拷贝以及正则表达式(python)

浅拷贝和深拷贝&#xff1a; 浅拷贝&#xff1a; copy函数是浅拷贝&#xff0c;支队可变类型的第一层对象进行拷贝&#xff0c;对拷贝的对象开辟显得内存空间进行存储&#xff0c;不会拷贝对象内部的子对象 不可变类型的浅拷贝示例&#xff1a; 浅拷贝不会对不可变类型进行…

飞天茅台酒的惊魂五日

“电商百亿补贴修改发货规则”导致黄牛资金压力剧增&#xff0c;资金压力之下部分黄牛择低价甩卖&#xff0c;其他求货的酒行、大酒商则选择观望&#xff0c;价格下行压力最终扩散&#xff0c;造成整个回收市场踩踏&#xff0c;价格急速下跌。 不到半年时间&#xff0c;飞天茅台…

FreeRtos-09事件组的使用

1. 事件组的理论讲解 事件组:就是通过一个整数的bit位来代表一个事件,几个事件的or和and的结果是输出 #define configUSE_16_BIT_TICKS 0 //configUSE_16_BIT_TICKS用1表示16位,用0表示32位 1.1 事件组适用于哪些场景 某个事件若干个事件中的某个事件若干个事件中的所有事…