参考:https://www.bilibili.com/video/BV1zt411a7rd?p=1本项目源码:https://github.com/dhwgithub/Django_demo
安装Django模块
本人使用Anaconda在指定环境中安装。
创建项目
本人使用Pycharm,在Terminal中输入命令django-admin startproject django_demo,其中最后的名称是项目名称;
然后进入该项目,即输入命令:cd django_demo;
启动项目,输入命令:python manage.py runserver,根据输出的网页进入即可浏览。
Ctrl + C关闭项目
数据迁移
接着输入数据迁移命令:python manage.py migrate,即使用该框架自带的数据库
设置超级管理员
为了方便后台管理,设置超级管理员:python manage.py createsuperuser;
然后重启项目,进入网页浏览,同时在网址后面加上/admin进入管理员登录页面(路由设置如图文件),输入账户密码登录;
![](https://i-blog.csdnimg.cn/blog_migrate/c74acdbb1a9c1400030db7f8e9efc086.png)
创建app应用
这里的app应用相当于该项目的子模块。关闭项目创建app1:python manage.py startapp app1;
然后将创建的子模块配置到该项目中,如下图文件表示。
![](https://i-blog.csdnimg.cn/blog_migrate/5cde1811185a487fdd3fab87da185321.png)
创建数据模型
假如app1是商城类,则在app1.models.py里创建如下类。
![](https://i-blog.csdnimg.cn/blog_migrate/8dee9e9119179b86bb8497461e3a7ff9.png)
设置数据库
使用MySQL数据库,在全局设置文件中修改数据库参数。
![](https://i-blog.csdnimg.cn/blog_migrate/616a5170bdc9f26085af82efb52d017a.png)
然后创建数据库,并在Terminal导入pymysql模块:pip install pymysql;
在app1中引入数据库,如图所示。
![](https://i-blog.csdnimg.cn/blog_migrate/9580c3b67f6d3d6c37be0958acb5344e.png)
进行数据表转化:python manage.py makemigrations;
最后输入命令:python manage.py migrate得到数据库表如下(多余的是管理员用户的)
![](https://i-blog.csdnimg.cn/blog_migrate/60166131b57c87fe9b183ce80b4ce69c.png)
![](https://i-blog.csdnimg.cn/blog_migrate/7b59ab160b6c2d66b747dfefa6fc18bd.png)
接下来演示Django项目的数据api:python manage.py shell
依次输入如下命令,如插入数据
![](https://i-blog.csdnimg.cn/blog_migrate/8cc73c39793467b9599ed6e8a7ff2c4e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/4116bbe90d0a00f14069c223e4268c80.png)
![](https://i-blog.csdnimg.cn/blog_migrate/7a03381e2da8190475483eab7a884453.png)
![](https://i-blog.csdnimg.cn/blog_migrate/8d01b9a87a81b261528cf25f0d9e2035.png)
如查询数据:
![](https://i-blog.csdnimg.cn/blog_migrate/5fe3c76d2a093664e532f957099f65dc.png)
如修改数据:
![](https://i-blog.csdnimg.cn/blog_migrate/32863bd0bad2adb7130325e0e3893c1b.png)
![](https://i-blog.csdnimg.cn/blog_migrate/278b2dbae73f1d4edfdcfe3893eec871.png)
如删除数据:
![](https://i-blog.csdnimg.cn/blog_migrate/979b65121335eec87bc3254a7e974f66.png)
![](https://i-blog.csdnimg.cn/blog_migrate/b4ca24c7a96772546e36ba39b602cf28.png)
管理后台
将数据库中的信息展示在后台。在app1.admin.py中进行如下配置(可以设置想要展示的内容),然后重启(若密码错误可以重新创建管理员账户)。
![](https://i-blog.csdnimg.cn/blog_migrate/39a8d755cd082a66600ada90c8c7fb03.png)
![](https://i-blog.csdnimg.cn/blog_migrate/b9550e44f7eca2cf1906846ddbe34096.png)
![](https://i-blog.csdnimg.cn/blog_migrate/7ab0687c727f14ab8bb090af401106cf.png)
(添加多条信息后)
![](https://i-blog.csdnimg.cn/blog_migrate/2bc08abfe12a4bd9016501916a491cea.png)
由于是英文界面和时间,对于我们都不够友好,可以在全局配置中做如下设置。
![](https://i-blog.csdnimg.cn/blog_migrate/680fd1ecb20328c5a2e7fdac3063242f.png)
![](https://i-blog.csdnimg.cn/blog_migrate/cac4ad6761786ce596c9c60b11485d2b.png)
(界面操作后验证功能和时间)
![](https://i-blog.csdnimg.cn/blog_migrate/40cccee1f7ba693cac21501b3a26ffcf.png)
![](https://i-blog.csdnimg.cn/blog_migrate/96332070f619335234fcf54cb095d490.png)
![](https://i-blog.csdnimg.cn/blog_migrate/6e2bd7d86782001447f9d60e83dd1ef3.png)
路由配置
在全局配置中的文件(urls.py)中配置一组路由app1,该组路由是由文件app1.urls指定细化的,如下。
![](https://i-blog.csdnimg.cn/blog_migrate/61562d7f8f1c35b5020776d84ff7a256.png)
然后在配置app1.urls.py文件。第一种精确路由
![](https://i-blog.csdnimg.cn/blog_migrate/3c9cee45c3498990ff1cc5f9e23524af.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f416e80d04ccde33dbf6a578b2a075e9.png)
![](https://i-blog.csdnimg.cn/blog_migrate/8543580bcc127d34ccc594b51bcc1eb0.png)
第二种格式匹配方式
![](https://i-blog.csdnimg.cn/blog_migrate/4597d2187236b99f9ca435afd590225e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/2f40f57c11de13204c6de4f996ea7aeb.png)
![](https://i-blog.csdnimg.cn/blog_migrate/59a26b9f463439ce26cb16f5e4882ece.png)
正则表达式方法
![](https://i-blog.csdnimg.cn/blog_migrate/48f092127f11ad28ea8f4aa795a0f466.png)
![](https://i-blog.csdnimg.cn/blog_migrate/6524fd7d1801674734715fc38179f362.png)
表单
设置表单,在app1.urls.py中配置路由。
![](https://i-blog.csdnimg.cn/blog_migrate/300076d17e5bfba30d23c65971d294b0.png)
![](https://i-blog.csdnimg.cn/blog_migrate/acfd7dc864f2e0c4de25a9e51cfa7f4a.png)
创建html文件内容(包含文件夹),如下。
![](https://i-blog.csdnimg.cn/blog_migrate/94035b6390000e2deb0d4a74840f2bed.png)
配置html文件的关联。
![](https://i-blog.csdnimg.cn/blog_migrate/046f16771ad06aafbb6847f690c238b4.png)
![](https://i-blog.csdnimg.cn/blog_migrate/ba6a331a6152aed1ee0652903a57e54d.png)
更高级的设置,创建表单类
![](https://i-blog.csdnimg.cn/blog_migrate/fa09439953755cf1586e851b3618097a.png)
![](https://i-blog.csdnimg.cn/blog_migrate/b43410222a093f74cbe71e364740b22e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f04ea6cda76ff08665194b55db95c093.png)
![](https://i-blog.csdnimg.cn/blog_migrate/7c31ae47b908e257531029b9921a4293.png)
增加提交按钮,以及增强安全措施,防止跨域攻击
![](https://i-blog.csdnimg.cn/blog_migrate/161ce4652ba6e208b8a0bbb9baf52eec.png)
处理提交
![](https://i-blog.csdnimg.cn/blog_migrate/c581b444f3fbebe2326cd164c9e609ee.png)
视图
![](https://i-blog.csdnimg.cn/blog_migrate/3d43c4a24ce6c362af428c2c75271748.png)
![](https://i-blog.csdnimg.cn/blog_migrate/85d62245dccd13b4f9f785a1a2fe77a5.png)
![](https://i-blog.csdnimg.cn/blog_migrate/885b07a03f38a2f5a5dd099e18a9ba61.png)
![](https://i-blog.csdnimg.cn/blog_migrate/084bcbe7b0ce6562f190b11aeaf987de.png)
以上所有视图都是基于函数的,下面演示基于类的视图。
![](https://i-blog.csdnimg.cn/blog_migrate/2a3d2de0b50249d6c25ec5b6bc391cdb.png)
![](https://i-blog.csdnimg.cn/blog_migrate/9c34d6b4649555a964f8d6469897ce02.png)
![](https://i-blog.csdnimg.cn/blog_migrate/1ceab6c0870d1dce761beb8ae5926bad.png)
模板
![](https://i-blog.csdnimg.cn/blog_migrate/7b00f522fb8a6e31607b664779ac0892.png)
![](https://i-blog.csdnimg.cn/blog_migrate/49d8aa1f64a2a82629ddf40d3d836f2f.png)
至此入门基本完成,可以在其他平台如github找难度适中的项目练练手。