基于Python的高级Web开发框架,支持python2.7及以上
python manage.py runserver [xxxx]端口可选,缺省默认8000
python manage.py createsuperuser
修改settings.py中LANGUAGE_CODE='zh_Hans'
修改admin.py
from . import models
admin.site.register(models.Article)
访问localhost:8000/admin
migrations文件夹只留__init__.py
删除mysql里的database,创建空database:
drop database xxx;
create database xxx;
在django中
python manage.py makemigrations
python manage.py migrate
django-admin startproject xxx
manage.py:项目管理器
wsgi.py:服务器网关接口
urls.py:URL配置文件
settings.py:总配置文件,可更换数据库
__init__.py:声明模块
python manage.py startapp xxx
添加到settings.py中的INSTALLED_APPS
migrations:数据迁移模块
admin.py:后台管理系统配置文件
apps.py:当前应用配置
models.py:数据模块
test.py:自动化测试模块
views.py:执行响应的逻辑代码
编辑views.py
from django.http import HttpResponse
def xxx(request):
return HttpResponse("xxxx")
编辑根urls.py
from django.urls import include
添加path('xxx/', include('xxx.urls'))
新建应用的urls.py
from django.urls import path
from . import views
urlpatterns = [
path('xxx/', views.xxx)
]
在app下创建templates文件夹,其下创建app名文件夹
在内层文件夹下创建xxx.html
在views.py中创建渲染函数
def xxx(request):
return render(request, 'xxx.html', {'key':'value'})
其中value可在html中用{{key}}方式显示,传递该字典类型的DTL到前端
在MySQL中建立database,推荐database名和项目名相同
修改settings.py
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'database_name',
'HOST': 'localhost',
'PORT': '3306',
'USER': 'root',
'PASSWORD': 'xxx',
}
}
运行
python manage.py makemigrations
python manage.py migrate
修改项目__init__.py
import pymysql
pymysql.install_as_MySQLdb()
建立database
create database tickets;
生成数据表(通过django在msql中建立table)
修改models.py
class Article(models.Model):
title = models.CharField(max_length=32, default='Title')
content = models.TextField(null=True)
python manage.py makemigrations [app名]缺省则对所有应用执行生成
python manage.py migrate
查看数据表
python manage.py sqlmigrate app名 id
数据呈现
编辑views.py
from . import models
title = request.POST.get('html_block_name', 'default_value')
models.Article.objects.create(title=title) # 插入方法一
cur_ticket = models.ticket(title=title)
cur_ticket.save() # 插入方法二,此方法可以获得自增主键cur_ticket.id
article = models.Article.objects.get(title='') # 查询一个,在找不到或找到一个以上时会报错,可用try except判断
article = models.Article.objects.get(~Q(title=''))# 不等于
articles = models.Article.objects.filter(title='')# 查询多个,返回一个列表,通过[]取到
articles = models.Article.objects.filter(title__in='')# 查询结果为多个,且查询条件为列表
article = models.Article.objects.get(pk='') # 根据主码查询
articles = models.Article.objects.all() # 查询所有
models.Article.objects.filter(title='').update(content='a') # 更新
models.Article.objects.get(title='').delete() # 删除
models.Article.objects.all().delete() # 删除所有
render(request, 'xxx.html', {'article':article}) # 将数据返回给html
编辑html添加{{article}}
浏览器输入localhost:xxxx/app1/
settings.py中添加
MIDDLEWARE = [
'corsheaders.middleware.CorsMiddleware', # 加在第一行
'django.middleware.security.SecurityMiddleware', # 加在第二行
]
CORS_ORIGIN_ALLOW_ALL = True