了解SqlAlchemy中的数字数据类型

时间:2016-07-22 12:45:12

标签: python sqlalchemy

我有一个班级

class vw_invoice_header(db.Model):

    __tablename__ = "vw_invoice_header"
    tax_amount = db.column(db.Numeric)
    total_price = db.column(db.Numeric)
    invc_number = db.Column(db.String(40))
    term_code = db.Column(db.String(20))
    order_date = db.Column(db.Date)
    airway_bill = db.Column(db.String(40))
    inh_auto_key = db.Column(db.Integer,primary_key=True)

现在我从oracle db得到一个结果,如下所示

invc = vw_invoice_header.query.filter_by(inh_auto_key=20643519).first()

我正在尝试使用以下值在我的jinja2模板中获得格式良好的价格

"{:8,.2f}".format(invc.total_price)

这会抛出一个错误,AttributeError:type对象'Numeric'没有属性'lower' 我不知道如何打印出这个数字:/我是一个新的python已经使用了一个星期。

由于 卡梅伦

1 个答案:

答案 0 :(得分:2)

您的前两个字段应为<title>Post Patient Injection Information</title> <?php $erors = array(); // set an empty array that will contains the errors // Check for form submission if (isset($_POST['patientID']) && isset($_POST['lastname']) && isset($_POST['patientname'])&& isset($_POST['dose'])) { // remove tags and whitespace from the beginning and end of form data $_POST = array_map("strip_tags", $_POST); $_POST = array_map("trim", $_POST); // chech if all form fields are filled in correctly // (minimum number of characters in "patientID") if (strlen($_POST['patientID'])<3) $erors[] = 'Patient ID must contain at least 3 characters.'; // if no errors ($error array empty) if(count($erors)<1) { // connect to the "tests" database $conn = new mysqli('somehost', 'someuser', 'somepassword', 'somedatabase'); // check connection if (mysqli_connect_errno()) { exit('Connect failed: '. mysqli_connect_error()); } // store the values in an Array, escaping special characters for use in the SQL statement $adds['pkgnumberID'] = $conn->real_escape_string($_POST['pkgnumberID']); // package number ID $adds['rxnumber'] = $conn->real_escape_string($_POST['rxnumber']); // patient prescription number $adds['patientID'] = $conn->real_escape_string($_POST['patientID']); // Patient ID / MRN number $adds['lastname'] = $conn->real_escape_string($_POST['lastname']); // patient last name $adds['patientname'] = $conn->real_escape_string($_POST['patientname']); // patient name $adds['isotope'] = $conn->real_escape_string($_POST['isotope']); // isotope injected $adds['radiopharmaceutical'] = $conn->real_escape_string($_POST['radiopharmaceutical']); // radiopharmaceutical injected $adds['dose'] = $conn->real_escape_string($_POST['dose']); // dose injected $adds['datetimestated'] = $conn->real_escape_string($_POST['datetimestated']); // date/time stated activity $adds['datetimeadmin'] = $conn->real_escape_string($_POST['datetimeadmin']); // date/time administered $adds['adminby'] = $conn->real_escape_string($_POST['adminby']); // administered by // sql query for INSERT INTO tbl_patientdoseinformation $sql = "INSERT INTO `tbl_patientdoseinformation` (`pkgnumberID`,`rxnumber`,`patientID`,`lastname`,`patientname`,`isotope`,`radiopharmaceutical`,`dose`,`datetimestated`,`datetimeadmin`,`adminby`) VALUES ('". $adds['pkgnumberID']. "','". $adds['rxnumber']. "','". $adds['patientID']. "','". strtoupper($adds['lastname']). "','". strtoupper($adds['patientname']). "','". $adds['isotope']. "','". $adds['radiopharmaceutical']. "','". $adds['dose']. "','". $adds['datetimestated']. "','". $adds['datetimeadmin']. "','". $adds['adminby']. "')"; // Performs the $sql query on the server to insert the values if ($conn->query($sql) === TRUE) { $last_id = $conn->insert_id; echo ' <head> <meta http-equiv="refresh" content="1;url=http://vmcnucmed.cvm.umn.edu/patientinjection/view_inj_info.php?id=' . $last_id;'"></head> Patient Added Successfully. <br /><br />Database ID: ' . $last_id;'<br>'; } else { echo 'Error: '. $conn->error; } $conn->close(); } else { // else, if errors, it adds them in string format and print it echo implode('<br />', $erors); } } else { echo 'No data from form'; } ?> 而不是Incident Identifier: 73833AED-4533-4507-8374-356D49E67DA8 CrashReporter Key: eeee419dcac8e895c3d419e32bb90f44767f9c96 Hardware Model: iPhone8,2 Process: EndCap [1184] Path: /private/var/containers/Bundle/Application/375353D7-8055-4E9E-AA5A-6AF64D553BB5/EndCap.app/EndCap Identifier: com.kelly.endcap Version: 1 (1.0) Code Type: ARM-64 (Native) Parent Process: launchd [1] Date/Time: 2016-07-22 15:51:12.12 +0500 Launch Time: 2016-07-22 15:50:43.43 +0500 OS Version: iOS 9.3.2 (13F69) Report Version: 105 Exception Type: EXC_CRASH (SIGABRT) Exception Codes: 0x0000000000000000, 0x0000000000000000 Exception Note: EXC_CORPSE_NOTIFY Triggered by Thread: 0 Filtered syslog: None found Last Exception Backtrace: (0x1833a6db0 0x182a0bf80 0x188886fb4 0x188889890 0x1885ff3cc 0x19510484c 0x100079b58 0x18853cbe8 0x18853cb64 0x188524870 0x18853c454 0x18853c084 0x188534c20 0x18850504c 0x1950d945c 0x188503628 0x18335d09c 0x18335cb30 0x18335a830 0x183284c50 0x184b6c088 0x18856e088 0x1000aa260 0x182e228b8) Global Trace Buffer (reverse chronological seconds): 1.740737 CFNetwork 0x0000000183a2bf18 TCP Conn 0x13df3f3c0 complete. fd: 10, err: 0 1.742165 CFNetwork 0x0000000183a2d444 TCP Conn 0x13df3f3c0 event 1. err: 0 1.747401 CFNetwork 0x0000000183a2bf18 TCP Conn 0x13deb9230 complete. fd: 8, err: 0 1.748859 CFNetwork 0x0000000183a2d444 TCP Conn 0x13deb9230 event 1. err: 0 Thread 0 name: Dispatch queue: com.apple.main-thread Thread 0 Crashed: 0 libsystem_kernel.dylib 0x0000000182f4011c 0x182f24000 + 114972 1 libsystem_pthread.dylib 0x000000018300cef8 0x183008000 + 20216 2 libsystem_c.dylib 0x0000000182eb1dac 0x182e50000 + 400812 3 libc++abi.dylib 0x00000001829e53f4 0x1829e4000 + 5108 4 libc++abi.dylib 0x0000000182a01e98 0x1829e4000 + 122520 5 libobjc.A.dylib 0x0000000182a0c248 0x182a04000 + 33352 6 libc++abi.dylib 0x00000001829fef44 0x1829e4000 + 110404 7 libc++abi.dylib 0x00000001829feb10 0x1829e4000 + 109328 8 libobjc.A.dylib 0x0000000182a0c120 0x182a04000 + 33056 9 CoreFoundation 0x0000000183284cf8 0x18327c000 + 36088 10 GraphicsServices 0x0000000184b6c088 0x184b60000 + 49288 11 UIKit 0x000000018856e088 0x1884f0000 + 516232 12 EndCap 0x00000001000aa260 0x100054000 + 352864 13 libdyld.dylib 0x0000000182e228b8 0x182e20000 + 10424 Thread 1 name: Dispatch queue: com.apple.libdispatch-manager Thread 1: 0 libsystem_kernel.dylib 0x0000000182f414d8 0x182f24000 + 120024 1 libdispatch.dylib 0x0000000182e047d8 0x182df0000 + 83928 2 libdispatch.dylib 0x0000000182df3648 0x182df0000 + 13896 Thread 2: 0 libsystem_kernel.dylib 0x0000000182f40b48 0x182f24000 + 117576 1 libsystem_pthread.dylib 0x0000000183009530 0x183008000 + 5424 2 libsystem_pthread.dylib 0x0000000183009020 0x183008000 + 4128 Thread 3: 0 libsystem_kernel.dylib 0x0000000182f40b48 0x182f24000 + 117576 1 libsystem_pthread.dylib 0x0000000183009530 0x183008000 + 5424 2 libsystem_pthread.dylib 0x0000000183009020 0x183008000 + 4128 Thread 4: 0 libsystem_kernel.dylib 0x0000000182f40b48 0x182f24000 + 117576 1 libsystem_pthread.dylib 0x0000000183009530 0x183008000 + 5424 2 libsystem_pthread.dylib 0x0000000183009020 0x183008000 + 4128 Thread 5: 0 libsystem_kernel.dylib 0x0000000182f40b48 0x182f24000 + 117576 1 libsystem_pthread.dylib 0x0000000183009530 0x183008000 + 5424 2 libsystem_pthread.dylib 0x0000000183009020 0x183008000 + 4128 Thread 6 name: WebThread Thread 6: 0 libsystem_kernel.dylib 0x0000000182f24fd8 0x182f24000 + 4056 1 libsystem_kernel.dylib 0x0000000182f24e54 0x182f24000 + 3668 2 CoreFoundation 0x000000018335cc60 0x18327c000 + 920672 3 CoreFoundation 0x000000018335a964 0x18327c000 + 911716 4 CoreFoundation 0x0000000183284c50 0x18327c000 + 35920 5 WebCore 0x000000018727261c 0x1871fc000 + 484892 6 libsystem_pthread.dylib 0x000000018300bb28 0x183008000 + 15144 7 libsystem_pthread.dylib 0x000000018300ba8c 0x183008000 + 14988 8 libsystem_pthread.dylib 0x0000000183009028 0x183008000 + 4136 Thread 7: 0 libsystem_kernel.dylib 0x0000000182f40b48 0x182f24000 + 117576 1 libsystem_pthread.dylib 0x0000000183009530 0x183008000 + 5424 2 libsystem_pthread.dylib 0x0000000183009020 0x183008000 + 4128 Thread 8 name: AFNetworking Thread 8: 0 libsystem_kernel.dylib 0x0000000182f24fd8 0x182f24000 + 4056 1 libsystem_kernel.dylib 0x0000000182f24e54 0x182f24000 + 3668 2 CoreFoundation 0x000000018335cc60 0x18327c000 + 920672 3 CoreFoundation 0x000000018335a964 0x18327c000 + 911716 4 CoreFoundation 0x0000000183284c50 0x18327c000 + 35920 5 Foundation 0x0000000183c94cfc 0x183c88000 + 52476 6 Foundation 0x0000000183cea030 0x183c88000 + 401456 7 EndCap 0x00000001000663c8 0x100054000 + 74696 8 Foundation 0x0000000183d7be4c 0x183c88000 + 998988 9 libsystem_pthread.dylib 0x000000018300bb28 0x183008000 + 15144 10 libsystem_pthread.dylib 0x000000018300ba8c 0x183008000 + 14988 11 libsystem_pthread.dylib 0x0000000183009028 0x183008000 + 4136 Thread 9 name: com.apple.NSURLConnectionLoader Thread 9: 0 libsystem_kernel.dylib 0x0000000182f24fd8 0x182f24000 + 4056 1 libsystem_kernel.dylib 0x0000000182f24e54 0x182f24000 + 3668 2 CoreFoundation 0x000000018335cc60 0x18327c000 + 920672 3 CoreFoundation 0x000000018335a964 0x18327c000 + 911716 4 CoreFoundation 0x0000000183284c50 0x18327c000 + 35920 5 CFNetwork 0x0000000183a05c68 0x183958000 + 711784 6 Foundation 0x0000000183d7be4c 0x183c88000 + 998988 7 libsystem_pthread.dylib 0x000000018300bb28 0x183008000 + 15144 8 libsystem_pthread.dylib 0x000000018300ba8c 0x183008000 + 14988 9 libsystem_pthread.dylib 0x0000000183009028 0x183008000 + 4136 Thread 10 name: com.apple.CFSocket.private Thread 10: 0 libsystem_kernel.dylib 0x0000000182f40344 0x182f24000 + 115524 1 CoreFoundation 0x00000001833631c8 0x18327c000 + 946632 2 libsystem_pthread.dylib 0x000000018300bb28 0x183008000 + 15144 3 libsystem_pthread.dylib 0x000000018300ba8c 0x183008000 + 14988 4 libsystem_pthread.dylib 0x0000000183009028 0x183008000 + 4136 Thread 0 crashed with ARM Thread State (64-bit): x0: 0x0000000000000000 x1: 0x0000000000000000 x2: 0x0000000000000000 x3: 0x000000013f1dcf07 x4: 0x0000000182a02e02 x5: 0x000000016fdab520 x6: 0x000000000000006e x7: 0x0000000000000fa0 x8: 0x0000000008000000 x9: 0x0000000004000000 x10: 0x0000000000000002 x11: 0x0000000000000010 x12: 0x0000000000000000 x13: 0x0000000000000002 x14: 0x00000000ffffffff x15: 0x00000000fffffff5 x16: 0x0000000000000148 x17: 0x0000000000000000 x18: 0x0000000000000000 x19: 0x0000000000000006 x20: 0x00000001a1d94000 x21: 0x000000016fdab520 x22: 0x000000013de188a0 x23: 0x00000001a1da0150 x24: 0x0000000000000001 x25: 0x2c00f9f3d0256680 x26: 0x000000013de17a70 x27: 0x0000000000000000 x28: 0x0000000000000001 fp: 0x000000016fdab480 lr: 0x000000018300cef8 sp: 0x000000016fdab460 pc: 0x0000000182f4011c cpsr: 0x00000000 Binary Images: 0x100054000 - 0x100103fff EndCap arm64 <ad20b26e95dc3db7b224649de8442f0a> /var/containers/Bundle/Application/375353D7-8055-4E9E-AA5A-6AF64D553BB5/EndCap.app/EndCap 0x102934000 - 0x102937fff GeoServices arm64 <c4c46b3fa23b3308895f8f580c921106> /System/Library/AccessibilityBundles/GeoServices.axbundle/GeoServices 0x102940000 - 0x102947fff ContactsUI arm64 <07006880c67c31aba08a5cf1dea62dce> /System/Library/AccessibilityBundles/ContactsUI.axbundle/ContactsUI 0x102954000 - 0x102957fff SpringBoardUIServices arm64 <0972934c2b9036ea84f17025b3145fef> /System/Library/AccessibilityBundles/SpringBoardUIServices.axbundle/SpringBoardUIServices 0x102960000 - 0x102963fff CoreRecognition arm64 <6edd27518cf73df3974ee9c498fc34aa> /System/Library/AccessibilityBundles/CoreRecognition.axbundle/CoreRecognition 0x10296c000 - 0x10296ffff WatchKit arm64 <ec1bdec24f003a59badb807610c246ee> /System/Library/AccessibilityBundles/WatchKit.axbundle/WatchKit 0x102978000 - 0x10297bfff SpringBoardFoundation arm64 <61682523019639d4a90cd541e47c19b1> /System/Library/AccessibilityBundles/SpringBoardFoundation.axbundle/SpringBoardFoundation 0x102984000 - 0x1029a3fff VectorKit arm64 <dbb52f717ffd3f78954e8ffd8a4301a6> /System/Library/AccessibilityBundles/VectorKit.axbundle/VectorKit 0x1029cc000 - 0x1029d3fff PreferencesFramework arm64 <513a24b0cc8d3a408020bb906b3c3826> /System/Library/AccessibilityBundles/PreferencesFramework.axbundle/PreferencesFramework 0x1029e4000 - 0x1029ebfff TelephonyUIFramework arm64 <1c3da556fe8d33258096ec218724036f> ----------* (请注意大小写)。 db.Column会创建一个db.column对象,而db.column会根据您的需要创建一个sqlalchemy.sql.elements.ColumnClause对象。

db.Column

一旦纠正了这一点,sqlalchemy.sql.schema.Column数据类型就会按预期运行。