1 环境搭建及创建
1) 安装Django
方法一:pip install django
方法二:Pycharm File——settings——Project——Python Interpreter——Python3.9 添加Django安装,设置django的环境变量
3)创建Django项目
命令行至指定目录下,django-admin startproject djangotest
4)启动django 项目
python manage.py runserver
5)创建一个App
django-admin startapp webtest
6)关闭django
ctrl+C
2 数据库连接
1)定义模型:在app中的 models.py 中创建class(一个class对应一张表);
from django.db import models # Create your models here. class Topic(models.Model): """用户学习的主题""" text=models.CharField(max_length=200) #指明字符数据类型,长度200 date_added=models.DateTimeField(auto_now_add=True) # 创建新主题时,自动创建当前时间 def __str__(self): return self.text class Entry(models.Model): """学到的有关某个主题的具体知识""" topic=models.ForeignKey(Topic,on_delete=models.CASCADE) # 外键 级联删除,即删除Topic时删除Entry text=models.TextField() date_added=models.DateTimeField(auto_now_add=True) class Meta: verbose_name_plural='entries' def __str__(self): return f"{self.text[:50]}..."
2)激活模型:在project下得seetings.py 中的INSTALLED_APPS 中添加app名称 (要将自己app名称放在默认前,这样能覆盖默认应用程序行为)
3)连接自带sqlite数据库
python manage.py createsuperuser
# Register your models here. from .models import Topic #Topic为models中创建的class名 admin.site.register(Topic) #让Django通过管理网站管理模型 admin.site.register(Entry)
启动网站,访问/admin/
from appname.models import classname classname.objects.all() #查询该表所有实例
topics=Topic.objects.all() for topic in topics: print(topic.id,topic)
t=Topic.objects.get(id=1) t.text
exit()
3 配置路由和页面
1) 映射URL
path('',include('webtest.urls'))
"""定义webtest的URL模式""" from django.urls import path from . import views # app_name='webtest' # 区别其他app同名文件,这里有一个问题就是在users中必须存在,在webtest中必须注释掉 urlpatterns=[ # 主页 path('',views.index,name='index') #第一参数 路由;第二个参数 views.py中对应函数;第三个参数 指定名称 ]
2)搭建view(也就是MVC中的controller)
from django.shortcuts import render # 根据视图提供的数据渲染响应 # Create your views here. def index(request): # 网站请求查找路由到index,然后将request传递给函数 """"学习笔记主页""" return render(request,''index.html')
3)在app路径下创建templates创建index.html
4 Django响应的前后端交互
5 设置应用程序样式
pip install django-bootstrap4
settings.py 的INSTALLED_APPS 中 添加 'bootstrap4',
{% load bootstrap4 %} {% bootstrap_css %} {% bootstrap_javascript jquery='full' %}
{% block content %} {% if form.errors %} <p>Your username and password didn't match.Please try again.</p> {% endif %} {% block page_header %} <h2>Log in to your account.</h2> {% endblock page_header %} <form method="post" action="{% url 'users:login' %}" class="form"> {% csrf_token %} {% bootstrap_form form %} {% buttons %} <button name="submit" class="btn btn-primary">Log in</button> {% endbuttons %} <input type="hidden" name="next" value="{% url 'index' %}" /> </form> {% endblock content %}
{% block content %} <p><a href="{% url 'index' %}">index</a></p> <p>Add a new topic:</p> <form action="{% url 'new_topic' %}" method="post"> {% csrf_token %} {{ form.as_p }} <button name="submit">Add topic</button> </form> {% endblock content %}
6 Django+Mysql+Vue