当前位置:   article > 正文

django入门学习_django教程

django教程

话不多说我们直接开始进入正题~~~~~~

什么是django??

        Django 是一个基于 Python 的开源Web应用程序框架,它遵循MVC(模型-视图-控制器)架构模式,使开发Web应用程序变得更加简单和快速。Django提供了许多功能和工具,包括自动化的管理面板、表单处理、认证系统、用户管理、数据库抽象层等,使开发人员能够更专注于业务逻辑的实现。Django还遵循“DRY(不要重复自己)”原则,使得开发更加高效。它被广泛用于构建高质量的Web应用程序和网站。

直接说怎么做不啰嗦了(要看具体内容欢迎去看django官网)

此文章是为了自己巩固学习而写的(只有我能看懂,不推荐看)

进入正题

1. pip install django

2.通过pycharm创建一个django项目 在通过(python manage.py startapp make_me)

3.进入之后

        3.1

                

        会出现这几个文件

        如果我们不考虑部署服务器的话我们所要操作只有settings和urls文件

                settings->整个项目的配置文件(进入settings)

                        1.注册app

  1. INSTALLED_APPS = [
  2. 'django.contrib.admin',
  3. 'django.contrib.auth',
  4. 'django.contrib.contenttypes',
  5. 'django.contrib.sessions',
  6. 'django.contrib.messages',
  7. 'django.contrib.staticfiles',
  8. 'make_me'#这是我的app
  9. ]
'
运行

                        2.删除不必要项

                        

  1. TEMPLATES = [
  2. {
  3. 'BACKEND': 'django.template.backends.django.DjangoTemplates',
  4. 'DIRS': []
  5. ,
  6. 'APP_DIRS': True,
  7. 'OPTIONS': {
  8. 'context_processors': [
  9. 'django.template.context_processors.debug',
  10. 'django.template.context_processors.request',
  11. 'django.contrib.auth.context_processors.auth',
  12. 'django.contrib.messages.context_processors.messages',
  13. ],
  14. },
  15. },
  16. ]
'
运行

                                删除‘DIRS’中的部分如图

                                3.修改数据库

                                我用的是mysql

  1. DATABASES={
  2. 'default': {
  3. 'ENGINE': 'django.db.backends.mysql',
  4. 'NAME': 'tea_stu',
  5. 'USER': 'root',
  6. 'PASSWORD': '031015',
  7. 'HOST': '127.0.0.3',
  8. 'PORT':3306,
  9. }
  10. }
'
运行

4.在创建的app下面添加static文件(用来存放静态文件bootsrap去官网里面下载这里我用的是bs3)

        

5.在app下创建templates文件(存放html文件)

6.在app目录下创建utils(用来存放组件(可以直接使用的))

7.导入必要的库pymysql,mysqlclient等在

在init文件中添加

  1. import pymysql
  2. pymysql.install_as_MySQLdb()

在app(make_me)中我们所要经常操作的是models和views(主要的思路就是在html中写下路由链接-点击跳转到urls中-通过urls中的函数跳转到views视图函数中进行作用,在跳转到html中进行作用)

案例

        配置完成之后(让我们来写一个登录页面)

1.通过models.py写自己所需要的表单

  1. # 学生信息
  2. class Stu_Info(models.Model):
  3. stu_name = models.CharField(verbose_name="名字",max_length=32)
  4. stu_age = models.IntegerField(verbose_name="年龄")# 年龄直接使用IntegerField
  5. gender_choice = {
  6. (1,'男'),
  7. (2,'女')
  8. }
  9. stu_gender = models.SmallIntegerField(verbose_name="性别",choices=gender_choice)# 当选择使用的时候直接使用SmallIntegerField来当做字段
  10. stu_address = models.CharField(verbose_name="地址",max_length=64)
  11. stu_high = models.CharField(verbose_name="身高",max_length=32)
  12. stu_weight = models.CharField(verbose_name="体重",max_length=32)
  13. stu_id = models.CharField(verbose_name="学号",max_length=64)
  14. stu_pwd = models.CharField(verbose_name="密码",max_length=32)

通过终端,python manage.py makemigrations 和 python manage.py migrate 进行数据迁移

2.urls页面

3.view页面

  1. # 登录页面
  2. def login_view(request):
  3. return render(request, 'login.html')
  4. # 登录按钮提交后,验证数据库中是否存在用户,存在就跳转主网页
  5. def login_view_submit(request):
  6. if request.method == "POST":#从post里面获取数据
  7. username = request.POST.get("username",'')
  8. password = request.POST.get('password','')
  9. if username and password:
  10. stu = models.Stu_Info.objects.filter(stu_name=username,stu_pwd=password).count()
  11. if stu >= 1:
  12. return render(request,'index.html')
  13. else:
  14. return render(request,'login.html')
  15. return render(request,'login.html')
'
运行

4.html页面

直接点击进去后的登录页面

后面点击提交之后post请求就会提交(下面会有具体的逻辑)

  1. {% load static %}
  2. <!DOCTYPE html>
  3. <html lang="en">
  4. <head>
  5. <meta charset="UTF-8">
  6. <title>Login</title>
  7. <style>
  8. body {
  9. font-family: Arial, sans-serif;
  10. background-color: #f4f4f4;
  11. margin: 0;
  12. padding: 0;
  13. display: flex;
  14. justify-content: center;
  15. align-items: center;
  16. height: 100vh;
  17. background-image: url({% static 'image/img2.jpg' %});
  18. background-size: cover;
  19. }
  20. .login-container {
  21. background-color: #fff;
  22. padding: 20px;
  23. border-radius: 8px;
  24. box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
  25. width: 400px; /* 修改宽度 */
  26. height: 400px;
  27. margin: 20px; /* 添加外边距 */
  28. }
  29. .login-container h2 {
  30. text-align: center;
  31. }
  32. .login-container form {
  33. display: flex;
  34. flex-direction: column;
  35. }
  36. .login-container form input[type="text"],
  37. .login-container form input[type="password"] {
  38. margin-bottom: 15px;
  39. padding: 10px;
  40. margin-top: 10%;
  41. border-radius: 4px;
  42. border: 1px solid #ccc;
  43. font-size: 16px;
  44. }
  45. .login-container form input[type="submit"] {
  46. margin-top: 20%;
  47. background-color: #007bff;
  48. color: #fff;
  49. border: none;
  50. padding: 10px;
  51. border-radius: 4px;
  52. cursor: pointer;
  53. font-size: 16px;
  54. transition: background-color 0.3s ease;
  55. }
  56. .login-container form input[type="submit"]:hover {
  57. background-color: #0056b3;
  58. }
  59. </style>
  60. </head>
  61. <body>
  62. <div class="login-container" style="color: blue">
  63. <h2>用户登录</h2>
  64. <form method="post" action="/index/login/">
  65. {% csrf_token %}
  66. <input type="text" name="username" placeholder="Username" required>
  67. <input type="password" name="password" placeholder="Password" required>
  68. <input type="submit" value="Login">
  69. <span style="color: #2aabd2">没有账号?<a href="/register/">去注册</a></span>
  70. </form>
  71. </div>
  72. </body>
  73. </html>

5.逻辑处理

runserver进去之后(由于路由urls中

path('',views.login_view),里面""为空,后面login_view函数为
def login_view(request):
    return render(request, 'login.html')
所以登录之后直接进入页面login.html)

后面输入信息后就是post请求通过函数

login_view_submit

来判断数据库中的信息来验证

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号