django学习 1d59951b1527802c870bea0a8a994cbc

!](https://i-blog.csdnimg.cn/direct/4777934351cb408b820fb918ce0a0c6d.png#pic_center)

//django学习

Created: 2025年4月14日 18:17

DJANGO教程

Django的安装和项目的创建我就先跳过,请大家自行查阅资料

前面给出一些必备知识:
在django里面要实现的每一个功能都称作app,比如说这个系统有一个买电影票的功能,那么就可以创建一个app,名为movie等等,每个app都会自动生成views,apps,models等重要的模块。

下面是通过浏览器访问目标系统时,后端django代码的执行流程:
首先,我访问127.0.0.1:8000/news

urls.py模块中的路由,找到views.py里面对应的函数,进入函数体,如果哟涉及到数据库,那么会使用models里面定义的表中的数据。

django提供了一个orm模块,能够让开发者不用写sql语句,直接通过python代码让用户对数据库进行增删改查。

我把app创建好了,下面展示:
在这里插入图片描述

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

快速上手:

在app01里面写一个页面,能够在浏览器中访问:
1.Djangoproject/urls.py

写一下的内容:
/

 import views from app01
 
 urlpatterns = [
    #    path('admin/', admin.site.urls),
path('index/',  views.index),
path('user/list/',  views.user_list),
    path('add/user', views.add_user),

]

2.app01/views.py

from django.shortcuts import render,HttpResponse

# Create your views here.
def index(request):
    return HttpResponse("欢迎使用")

def user_list(request):
    return render(request, "user_list.html") #使用render模块来在浏览器中渲染html文件的内容
    

def add_user(request):
    return render(request,"add_user.html")#html文件创建的位置以及方法:在app01目录下
    #创建Templates目录,在目录下创建以上的html目录
    

静态文件

在开发过程中:

1.图片

2.css

3.js

全都放在static目录下
在这里插入图片描述

在这里插入图片描述

{%. load static % } 只要修改static的位置代码里面所有的路径都可以改变

template部分先跳过,自己了解一下基本的语法即可

获取请求和响应相关的数据

案例:伪联通新闻中心

首先创建一个路由,再写news函数:

创建路由:

#urls.py
urlpaterns = [
path('/news', views.news)
]

在views里面编写函数的逻辑:

def news(request):
res = request.get("写你需要爬取的网站的URL")
data_list = res.text
return HttpReponse(data_list)

重启项目+在浏览器访问127.0.0.1:8000(看你默认的端口是哪个)

访问/news能看到你想要爬取的网站的页面,我爬去的是华为的一个新闻网站
在这里插入图片描述

这里要插入一小部分,教大家怎么对使用orm模块;

首先安装mysqlclient驱动,然后开始写代码。

#orm

#urls.py
url_pattern[
path('/orm', views.orm)
]

#Models.py
import models
#这个模块主要用创建表,django里面无法直接用代码创建数据库,大家乐意通过命令或者是可视化页面创建数据库
 class Userinfo(models.Models):
 name = CharField(length_max=64)
 password = CharField(length_mac=32)
 age = CharField(length_max=32)

#views.py

def orm(request):
#在函数体里面可以直接进行增删改查:
Userinfo.object.create(name="aisi", password="123456", age=18)
#删除
Userinfo.object.filter(id=1).delete()
Userinfo.object.all() #获取全部的数据
Userinfo.object.fliter(id=2).first()
#更新数据
Userinfo.object.filter(id=1).update(age=12)

案例:登陆页面

数据库操作:

mysql数据库+pymysql对mysql进行增删改查

但是django里面操作数据库更加简单:orm框架

orm 可以通过mysqlclient mysqldb. pymysql来操作数据库

1.安装mysqlclient

2.django的orm帮助做两件事情:
创建和数据库中的表

django链接数据库

配置数据库

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

在models模块中建立表

执行命令

python manage.py make migrations
python manage.py make migrate

对表中的数据进行增删改查;

案例:用户管理的程序:

1.展示用户列表

models中创建数据库表,

#urls.py
def url(request):
path('/info/list',views.Userinfo)
#models.py
import Models from models
def Userinfo(models.Model):
	name = CharField(length_max=32)
	password = CharField(length_max=64)
	
#views.py
from app01_Models import Userinfo
def Userinfo(request):
	data_list = UserInfo.object.all()
	for item in data_list:
	 item.name, item.password,item.age
	 return render(request,"info.html", {"data_list":data_list})
 
<html>
	<head>
		 <title>TITLE</title>
	</head>
	<body>
	<h1>用户列表</h1>
		<table>
		<thead>
			<tr>
				<th> id</th>
				<th> 姓名</th>
				<th> 密码/th>
				<th> age</th>
				</tr>
			</thead>
			<tbody>
			{% for obj in item %}
			<tr>
				
				<td> {{obj.id}}</td>
					<td> {{obj.name}}</td>
						<td> {{obj.password}}</td>
							<td> {{obj.age}}</td>

				</tr>

				
			{%endfor%}
				
			</tbody>
		
		</table>
	
	
	</body>

</html>

以上时实现整个案例的代码

给表中的数据插入数据,进行增删改的操作可以在views里面创建一个类,进行测试:

#views.py
from app01_Models import UserInfo,Department

def orm(request):
 #给表UserInfo插入数值:
 User.object.create(name="aisiman", password="12346", age=18)
 #删除数据:
 Userinfo.object.fliter(id=1).delete()
 #获取表中所哟的数据:
 Userinfo.object.all()
 
 #更新数据:
 Userinfo.object.filter(id=1).update(age=18)

以上的代码以及思想可以完成一个非常基本的登录页面的制作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值