!](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)
以上的代码以及思想可以完成一个非常基本的登录页面的制作。