51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1699|回复: 1
打印 上一主题 下一主题

python django web项目的构建步骤(一)

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-2-20 15:01:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 小文0111 于 2019-2-20 15:15 编辑

Django
一个开放源代码的Web应用框架,由Python写成。采用了MVC的软件设计模式,即模型M,视图V和控制器C。它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的。并于2005年7月在BSD许可证下发布。

1、安装好python django(这步略过,安装过程自行完成,网上安装步骤很多),安装的版本不同而生成的文件目录也不同,这里用的是1.6.5的版本的django;
  1. [root@node3 ~]# django-admin.py --version
  2. 1.6.5
复制代码
2、创建django项目
  1. [root@node3 python]# django-admin.py startproject mysite2
  2. [root@node3 python]# cd mysite2/
  3. [root@node3 mysite2]# ll
  4. total 8
  5. -rwxr-xr-x. 1 root root  250 Jun  9 22:20 manage.py
  6. drwxr-xr-x. 2 root root 4096 Jun  9 22:20 mysite2
复制代码
以上的是1.6.5版本生成的一个manage.py和一个目录mysite2,如是1.3.7的版本的话生成的是以下的格式:
  1. [root@node1 python]# cd mysite2/
  2. [root@node1 mysite2]# ll
  3. total 16
  4. -rw-r--r--. 1 root root    0 Jun 10 10:19 __init__.py
  5. -rw-r--r--. 1 root root  503 Jun 10 10:19 manage.py
  6. -rw-r--r--. 1 root root 5203 Jun 10 10:19 settings.py
  7. -rw-r--r--. 1 root root  568 Jun 10 10:19 urls.py
复制代码
3、这里我们还是以1.6.5的版本为例说明问题,如果我们需要连接数据库,那我们需要去修改mysite2文件夹里的settings.py文件;
  1. DATABASES = {
  2.       'default': {
  3.           'ENGINE': 'django.db.backends.mysql',  # 需要连接什么数据库
  4.           'NAME': 'mysite2', # 需要连接的数据库名
  5.           'USERNAME': 'root',    # 连接数据库的用户名
  6.           'PASSWORD': 'linux',   # 连接数据库的密码
  7.           'PORT': '3306',        # 端口
  8.       }
  9. }
  10. 我们还可以改一下时区和使用的语言
  11. LANGUAGE_CODE = 'en-zh'   # 中文
  12. TIME_ZONE = 'Asia/Shanghai'   # 亚洲,上海
复制代码
4、之后就可以启动django了,切换到manage.py目录文件下,如不写0.0.0.0:8000(监听所有地址),那默认是监听127.0.0.1:8000这个套接字;
  1. [root@node3 mysite2]# python manage.py runserver 0.0.0.0:8000
复制代码
5、然后就可以在页面上访问了,用本机的地址加端口就可以访问:
################  以下是新建一个APP的简单设置步骤  ############
1、使用manage.py创建一个APP;
  1. [root@node3 mysite2]# python manage.py startapp myapp
  2. [root@node3 mysite2]# ll
  3. total 12
  4. -rwxr-xr-x. 1 root root  250 Jun  9 22:20 manage.py
  5. drwxr-xr-x. 2 root root 4096 Jun 10 01:47 myapp
  6. drwxr-xr-x. 2 root root 4096 Jun  9 23:29 mysite2
复制代码
2、为了使 Django 认识到新应用程序的存在,还需要向 settings.py 文件中的 INSTALLED_APPS 添加一个条目。
  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.      'myapp',  添加新建的app
  9. )
复制代码
3、切换到myapp中,创建一个模型,也就是在moduls.py文件中新建一个类,做个类代表对应数据库中的一张表;
  1. [root@node3 myapp]# vim models.py
  2. from django.db import models

  3. class Teacher(models.Model):
  4.     name = models.CharField(max_length=30)
  5.     gender = models.CharField(max_length=5)
  6.     age = models.CharField(max_length=5)
  7.     job = models.CharField(max_length=50)

  8.     def __unicode__(self):
  9.         return "%s, %s, %s, %s" % (self.name, self.gender, self.age, self.job)

  10. class Student(models.Model):
  11.     name = models.CharField(max_length=30)
  12.     gender = models.CharField(max_length=5)
  13.     age = models.CharField(max_length=5)
  14.     course = models.CharField(max_length=50)

  15.     def __unicode__(self):
  16.         return "%s, %s, %s, %s" % (self.name, self.gender, self.age, se
复制代码
##  创建完所需要的表之后就可以使用下面命令进行数据库的同步了:
  1. [root@node3 mysite2]# python manage.py syncdb
  2. Creating tables ...
  3. Creating table django_admin_log
  4. Creating table auth_permission
  5. Creating table auth_group_permissions
  6. Creating table auth_group
  7. Creating table auth_user_groups
  8. Creating table auth_user_user_permissions
  9. Creating table auth_user
  10. Creating table django_content_type
  11. Creating table django_session
  12. Creating table myapp_teacher

  13. You just installed Django's auth system, which means you don't have any superusers defined.
  14. Would you like to create one now? (yes/no): yes
  15. Username (leave blank to use 'root'): # admin的用户帐号
  16. Email address: abc@test.com
  17. Password: # 这个设置是登录admin是的登录密码
  18. Password (again):
  19. Superuser created successfully.
  20. Installing custom SQL ...
  21. Installing indexes ...
  22. Installed 0 object(s) from 0 fixture(s)
复制代码
##  登录mysql数据库就可以查看到生成的表了:
  1. MariaDB [(none)]> use mysite2;
  2. Database changed
  3. MariaDB [mysite2]> show tables;
  4. +----------------------------+
  5. | Tables_in_mysite2          |
  6. +----------------------------+
  7. | auth_group                 |
  8. | auth_group_permissions     |
  9. | auth_permission            |
  10. | auth_user                  |
  11. | auth_user_groups           |
  12. | auth_user_user_permissions |
  13. | django_admin_log           |
  14. | django_content_type        |
  15. | django_session             |
  16. | myapp_student              |   # 下面这两个是我们需创建的表student和teacher
  17. | myapp_teacher              |
  18. +----------------------------+
  19. 11 rows in set (0.00 sec)

  20. MariaDB [mysite2]> desc myapp_student;
  21. +--------+-------------+------+-----+---------+----------------+
  22. | Field  | Type        | Null | Key | Default | Extra          |
  23. +--------+-------------+------+-----+---------+----------------+
  24. | id     | int(11)     | NO   | PRI | NULL    | auto_increment |
  25. | name   | varchar(30) | NO   |     | NULL    |                |
  26. | gender | varchar(5)  | NO   |     | NULL    |                |
  27. | age    | varchar(5)  | NO   |     | NULL    |                |
  28. | course | varchar(50) | NO   |     | NULL    |                |
  29. +--------+-------------+------+-----+---------+----------------+
  30. 5 rows in set (0.10 sec)

  31. MariaDB [mysite2]> desc myapp_teacher;
  32. +--------+-------------+------+-----+---------+----------------+
  33. | Field  | Type        | Null | Key | Default | Extra          |
  34. +--------+-------------+------+-----+---------+----------------+
  35. | id     | int(11)     | NO   | PRI | NULL    | auto_increment |
  36. | name   | varchar(30) | NO   |     | NULL    |                |
  37. | gender | varchar(5)  | NO   |     | NULL    |                |
  38. | age    | varchar(5)  | NO   |     | NULL    |                |
  39. | job    | varchar(50) | NO   |     | NULL    |                |
  40. +--------+-------------+------+-----+---------+----------------+
  41. 5 rows in set (0.00 sec)
复制代码
4、到这里我们可以通过django的admin管理界面来添加,删除,修改表中的信息,即在myapp目录中的admin.py添加一个class类:
  1. [root@node3 myapp]# vim admin.py
  2. from myapp.models import Student, Teacher
  3. class TeacherAdmin(admin.ModelAdmin):
  4.     list_display = (
  5.         'name',
  6.         'gender',
  7.         'age',
  8.         'job',
  9.     )

  10. class StudentAdmin(admin.ModelAdmin):
  11.     list_display = (
  12.         'name',
  13.         'gender',
  14.         'age',
  15.         'course',
  16.     )

  17. admin.site.register(Student, StudentAdmin)
  18. admin.site.register(Teacher, TeacherAdmin)
复制代码
这个保存之后就可以在地址栏中输入http://10.17.1.151:8000/admin来访问到了,在这里就直接可以操作数据库表。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-18 14:38 , Processed in 0.065576 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表