Django环境搭建和项目创建

·····说明

不要根据我的项目名称创建!!!用你自己的。根据B站IT三师兄25 的教学视频写的,会不定时更新,如果有什么错误的地方麻烦指出,欢迎交流。

目录

·····说明

1,环境的搭建

1.1创建项目

1.2快速上手

1.3快速启动

1.4 Pycharm

1.41 创建项目

1.42 可能的BUG

1.43 编写

1.5 不专业

1.6 APP

小结

2,初识视图函数

小结

3,初识模板

4,静态文件的处理

案例:登录并跳转

5,ORM

5.1自己创建数据库

5.2创建表结构

5.2.1编写类

5.2.2命令

5.2.3 继以上操作,添加新表

5.3.4 修改

小结


1,环境的搭建

1.1创建项目

查看python版本 >>> py -0p

1.2快速上手

通过cmd命令创建项目,见http://t.csdnimg.cn/Qf1sL或者http://t.csdnimg.cn/0c5IT

创建成功后,结构如下

在urls.py编写如下代码

from django.contrib import admin
from django.urls import path
from django.shortcuts import HttpResponse
​
def login(request):
    return HttpResponse("登录页面")
​
urlpatterns = [
    path('admin/', admin.site.urls),
]

1.3快速启动

网站启动起来,通过浏览器就可以访问了。

  • 打开终端进入项目根目录(dir看到manage.py)

  • 执行命令,启动网站

    python manage.py runserver 127.0.0.1:8000
    python manage.py 

1.4 通过Pycharm 创建项目

>>>pip install django==4
  • 创建项目

  • 启动项目

1.41 创建项目

git库可以不创建。

1.42 可能的BUG

是pycharm导致的。

1.43 编写

1.5 不专业

函数不应该和url写在一起

1.6 APP

在django项目中创建APP,在APP中编写项目的具体业务。

在pycharm终端执行以下命令

python3.12 manage.py startapp web

创建成功产生该文件夹。

小结

  • 安装django框架

pycharm终端执行

pip install django==4
  • 创建项目

    • 命令:(pycharm终端执行)

      django-admin startproject 项目名
    • pycharm

  • 创建APP  (pycharm终端执行)

    python3.12 manage.py startapp web
  • 编写业务代码

    • url.py

      • 主要放函数的对应关系

      from django.contrib import admin
      from django.urls import path
      from web.views import login
      ​
      urlpatterns = [
          path('admin/', admin.site.urls),
          path('login/',login)
      ]
      ​
    • view.py

      • 处理url请求的功能

      from django.shortcuts import render
      from django.http import HttpResponse
      ​
      def login(request):
          return HttpResponse("登录页面")

2,初识视图函数

前面的示例

from django.shortcuts import render
from django.http import HttpResponse
​
def login(request):
    return HttpResponse("登录页面")
from django.http import HttpResponse
​
def login(request):
    #。。。例如:用户名、密码--> 数据库校验
    return HttpResponse("登录页面")
  • request

    • 包含用户请求相关的所有内容

    • 可以在request中获取用户提交的数据等信息

  • 中间、业务逻辑操作

  • 返回值,返回的什么体现用户浏览器的行为不同

小结
  • 参数,去request中获取

  • 中间。

  • 返回值

    • setting.py

    ​
    INSTALLED_APPS = [
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        'web.apps.WebConfig',
    ]
    ​
    ........
    ​
    TEMPLATES = [
        {
            'BACKEND': 'django.template.backends.django.DjangoTemplates',
            'DIRS': [os.path.join(BASE_DIR,'templates')],
            'APP_DIRS': True,
            'OPTIONS': {
                'context_processors': [
                    'django.template.context_processors.debug',
                    'django.template.context_processors.request',
                    'django.contrib.auth.context_processors.auth',
                    'django.contrib.messages.context_processors.messages',
                ],
            },
        },
    ]
    • 单独app的模板,在app中写;公共的就在最外层的templates中写HTML模板。

3,初识模板

web框架中都要用到模板的语法,用户看到的值都是动态的。

view.py

from django.shortcuts import render,redirect
from django.http import HttpResponse
​
# Create your views here.
def login(request):
    return HttpResponse("登录页面")
​
def user_list(request):
​
#1.数据库获取所有的用户列表
    data = ["11111","22222","33333","44444","55555"]
​
    mapping = {"name":"张三","age":"13","gender":"女","address":"四川雅安",}
​
#2.打开文件并读取内容
#3.模板渲染  --->  文本替换
    return render(request,'user_list.html',{'massage':"标题","data_list":data,"mapping":mapping})
​

新建一个html,并写入

user_list.HTML

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h1>{{ massage }}</h1>
<ul>
    {% for item in data_list %}
    <li>{{ item }}</li>
    {% endfor %}
​
</ul>
<a>{{ data_list.3 }}</a>
<span>{{ mapping.name }}</span>
<span>{{ mapping.age }}</span>
<span>{{ mapping.gender }}</span>
<span>{{ mapping.address }}</span>
<hr>
<div>
    {% for item in mapping.keys %}
    <li>{{ item }}</li>
    {% endfor %}
</div>
<hr>
<div>
    {% for item in mapping.values %}
    <span>{{ item }}</span>
    {% endfor %}
</div>
</body>
</html>

注意:

效果

4,静态文件的处理

图片、css、js等。

案例:登录并跳转

新创建一个项目,先停下原来的项目。

5,ORM

ORM,对象关系映射。

//类
class UserInfo:
    id = IntegerField
    name = CharField
    age = IntegerField
    email = CharField

5.1自己创建数据库

5.2创建表结构

去APP下的models.py中创建指定的类+命令,自动创建表。

5.2.1编写类
#在models.py 上添加类
from django.db import models
​
# Create your models here.
class UserInfo(models.Model):
    name = models.CharField(verbose_name="姓名", max_length=16)
    age = models.ImageField(verbose_name="年龄")
    email = models.CharField(verbose_name="邮箱", max_length=32)

表结构如下:

5.2.2命令
  • 先连接上数据库

//setting设置,找到DATABASES,将原来的注释掉。将下面的粘贴上去
DATABASES = {
    'default': {
    'ENGINE': 'django.db.backends.mysql',
    'NAME':'demo1',        #这个是数据库名称
    'USER': 'root',        #用户名
    'PASSWORD': '123456',   #连接数据库密码
    'HOST': '127.0.0.1',
    'PORT': 3306,           #接口
    }
}
  • python代码连接数据库:pymysql、mysqlclient

//安装
pip3.12 install mysqlclient

接下来再去pycharm终端执行一下命令

python3.12 manage.py makemigrations
python3.12 manage.py migrate
  • makemigrations ,读取已经注册所有的app中的models.py文件,根据类生成配置文件并放到APP下的migrations目录

  • migrate,根据配置文件在自动生成相应的SQL语句。如下的sql语句。

creat table demo_userinfo(
    id int ....
    name ...
    age ...
    email ...
)

创建成功

5.2.3 继以上操作,添加新表
//在models.py 上添加新类
# Create your models here.
​
class Department(models.Model):
    title = models.CharField(verbose_name="标题",max_length=32)

再次执行以下命令即可在数据库创建新表

python3.12 manage.py makemigrations
python3.12 manage.py migrate

创建成功

5.3.4 修改

在models.py的类中修改完成后,再pycharm终端执行一下命令即可修改成功。

python3.12 manage.py makemigrations
python3.12 manage.py migrate
小结
  • 自己创建数据库

  • django配置连接数据库

    DATABASES = {
        'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME':'demo1',        #这个是数据库名称
        'USER': 'root',        #用户名
        'PASSWORD': '123456',   #连接数据库密码
        'HOST': '127.0.0.1',
        'PORT': 3306,           #接口
        }
    }
  • python操作mysql模块

    pip3.12 install mysqlclient
  • models.py【经常做】

    from django.db import models
    ​
    # Create your models here.
    class UserInfo(models.Model):
        name = models.CharField(verbose_name="姓名", max_length=16)
        age = models.IntegerField(verbose_name="年龄")
        photo = models.ImageField(verbose_name="照片")
        email = models.CharField(verbose_name="邮箱", max_length=32)
    ​
    class Department(models.Model):
        title = models.CharField(verbose_name="标题",max_length=32)
        
    #CharField 字符串
    #ImageField 图像
  • 命令【经常做】

    python3.12 manage.py makemigrations
    python3.12 manage.py migrate
  • 创建成功

  • 27
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值