Python之Django学习1

Django学习简易版

准备工作

  1. 下载Django框架,注意:全部命令在管理员窗口执行

    pip install django==2.2.*
    # 2.2版本是稳定版的 * 代表这个版本最新的
    
  2. 创建框架,在第一步中有

  3. 启动项目

    python manage.py runserver # 默认是8080端口 ,本地连接
    python mangee.py runserver 8080 # 改端口
    python manage.py runserver 0.0.0.0:8000 # 远程连接,如果不成功,根据自己的django版本去官方文档找。
    
  4. 启动成功在浏览器中打开

    Run 'python manage.py migrate' to apply them.
    February 25, 2022 - 11:36:52
    Django version 2.2.8, using settings 'mydemo.settings'
    Starting development server at http://127.0.0.1:8000/ # 用这个url在浏览中打开
    Quit the server with CTRL-BREAK.
    

第一步创建框架

  1. 创建项目框架,随便找个目录,打开管理员窗口,在你找到目录在输入。

    django-admin startpoject myweb(项目名)
    
  2. 创建app 可以多个创建,进入myweb目录下,输入

    python manage.py startapp myapp(app名)
    
  3. 创建前端html页,手动 创建 在myweb下创建 templates/myapp目录,html写在myapp下,实在templates/myapp,而不是你创建的app下。

第二步环境配置

  1. 找到项目下settings.py 文件
  2. 修改ALLOWED_HOSTS=[’*’],让任意都能访问
  3. 添加自己的应用在INSTALLED_APPS中加入’myapp’,
  4. 在TEMPLATES中DIRS中修改[os.path.join(BAST_DIR,‘templates’)] ,html前端,用于解析url需要

数据库链接

  1. 配置
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'mytest',#选择数据库的名,请确认你的mysql中有这个库
        'USER': 'root',
        'PASSWORD': '1234',
        'HOST': '127.0.0.1',
        'PORT': '3306',
        }
}

2.在app中models.py中放映射数文档

这里要下载mysqlclient 模块

例子:

from django.db import models
from datetime import datetime

# Create your models here.
class Users(models.Model):
 #id = models.AutoField(primary_key=True) #主键可省略不写
 name = models.CharField(max_length=32)
 age = models.IntegerField(default=20)
 phone = models.CharField(max_length=16)
 addtime=models.DateTimeField(default=datetime.now)
	class Meta:
        db_table = "表名" # 指定表名,如果不写默认是app名_Users类名
  1. 生成迁移文件 python manage.py makemigrations

    图片

  2. 生成表 **python manage.py migrate myapp(app名) 注意:如果不写app名,INSTALLED_APPS里对应的都会创建表,djamgo_migrations app表 **

测试

  1. 配置子路由,找到项目中urls.py脚本

    from django.contrib import admin
    from django.urls import path,include #导入include
    
    urlpatterns = [
        # path('admin/', admin.site.urls),
        path('', include('myapp.urls')),# 指向子路径,这里的urls需要自己手动在myapp下创建。
    ]
    
  2. 再在自己手动创建的urls中修改

    from django.urls import path
    from . import views  # 导入视图层
    
    urlpatterns = [
        path('',views.index,name='index')
        # '' 默认为空url头部为空,views.index 视图层下·对应的函数, name='index' 反向解析需要。
    ]
    
  3. 在wiews中写index函数

    from django.shortcuts import render
    from django.http import HttpResponse
    # Create your views here.
    def index(request):
        return HttpResponse("首页")
    
  4. 在浏览器中测试

数据库简单增删改查操纵

增加

from django.shortcuts import render
from django.http import HttpResponse
from myapp.models import Users # 导入Users类
# Create your views here.
def index(request):
    # 增加
    ob = Users()
    ob.name = '张珊'
    ob.age = 20
    ob.phone = '135423234'
    ob.save() # 保存
     #删除操作
    # mod = Users.objects #获取users的model对象
    # user = mod.get(id=6) #获取id值为6的数据信息
    # print(user.name)
    # user.delete() #执行删除操作

    #修改操作
    # ob = Users.objects.get(id=7)
    # #print(ob.name)
    # ob.name = "小刘"
    # ob.age = 26
    # ob.save()

    #数据查询
    mod = Users.objects #获取Users模型的Model操作对象
    #ulist = mod.all() #获取所有数据
    #ulist = mod.filter(name='小刘') #获取name值为小刘的信息
    #ulist = mod.filter(age__gt=20) #获取所有age大于20的信息
    #ulist = mod.filter(age__gte=20) #获取所有age大于等于20的信息
    #ulist = mod.filter(age__lte=20) #获取所有age小于等于20的信息
    #ulist = mod.order_by("age") #按age升序排序
    ulist = mod.order_by("age")[:3] #按age升序排序,只获取前3条
    for u in ulist:
        print(u.id,u.name,u.age,u.phone,u.addtime)
    # 去浏览器刷新一下就行。
    # 再看终端(管理员窗口)有没有没错,数据库有数据就没错,就不截图了
    return HttpResponse("首页")
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值