Django学习简易版
准备工作
-
下载Django框架,注意:全部命令在管理员窗口执行 pip install django==2.2.*
-
创建框架,在第一步中有 -
启动项目 python manage.py runserver
python mangee.py runserver 8080
python manage.py runserver 0.0.0.0:8000
-
启动成功在浏览器中打开 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.
?
第一步创建框架
-
创建项目框架,随便找个目录,打开管理员窗口,在你找到目录在输入。 django-admin startpoject myweb(项目名)
-
创建app 可以多个创建,进入myweb目录下,输入 python manage.py startapp myapp(app名)
-
创建前端html页,手动 创建 在myweb下创建 templates/myapp目录,html写在myapp下,实在templates/myapp,而不是你创建的app下。
第二步环境配置
- 找到项目下settings.py 文件
- 修改ALLOWED_HOSTS=[’*’],让任意都能访问
- 添加自己的应用在INSTALLED_APPS中加入’myapp’,
- 在TEMPLATES中DIRS中修改[os.path.join(BAST_DIR,‘templates’)] ,html前端,用于解析url需要
数据库链接
- 配置
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'mytest',
'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
class Users(models.Model):
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 = "表名"
-
生成迁移文件 python manage.py makemigrations -
生成表 **python manage.py migrate myapp(app名) 注意:如果不写app名,INSTALLED_APPS里对应的都会创建表,djamgo_migrations app表 **
测试
-
配置子路由,找到项目中urls.py脚本 from django.contrib import admin
from django.urls import path,include
urlpatterns = [
path('', include('myapp.urls')),
]
-
再在自己手动创建的urls中修改 from django.urls import path
from . import views
urlpatterns = [
path('',views.index,name='index')
]
-
在wiews中写index函数 from django.shortcuts import render
from django.http import HttpResponse
def index(request):
return HttpResponse("首页")
-
在浏览器中测试
数据库简单增删改查操纵
增加
from django.shortcuts import render
from django.http import HttpResponse
from myapp.models import Users
def index(request):
ob = Users()
ob.name = '张珊'
ob.age = 20
ob.phone = '135423234'
ob.save()
mod = Users.objects
ulist = mod.order_by("age")[:3]
for u in ulist:
print(u.id,u.name,u.age,u.phone,u.addtime)
return HttpResponse("首页")
|